Tools Reference

Every tool available through Titan AI MCP, organized by category.

Looking for account management tools (link, switch, list)? They're documented in detail at Managing Accounts.

Knowledge Tools

titan_lessons

Search Titan Network training content and lessons.

community_feed

Search community discussions and member insights.

fetch_framework

Get teaching frameworks. Slugs: plog (Product Launch Optimization), ppc_3_0 (PPC 3.0 tactics), states_and_drivers (posture matrix).

Seller Management

list_seller_accounts

List linked Amazon stores in the active Titan Tools account.

set_active_seller

Activate a store by name; pass marketplace if duplicate names.

Account Data

Requires an active seller and a date range.
get_account_performance_summary

Revenue, orders, units, margins, CM1/CM2/CM3.

get_account_ppc_metrics

PPC totals: spend, sales, ACoS, ROAS.

get_account_ppc_metrics_by_campaign

PPC by campaign. Filters: campaignIds, asins, adType. Response includes matchType, tags, outOfBudget, avgDailySpend per campaign (2026-05).

get_marketplaces

Connected Amazon marketplaces.

get_brands

Seller brands.

get_data_sync_status

Amazon data-sync (backfill) progress for the active seller — why data may look empty or partial. Reports tracked plus, only when tracked, an overall percent and per-lane SP / Ads progress. An untracked result means UNKNOWN, not 0%: that is the normal shape for an established account whose backfill predates upstream lifecycle tracking, and its data should be treated as complete. Takes no arguments.

Product Data

Requires an active seller.
search_for_products

Search by name, ASIN, or SKU.

get_products_summary

Full product list with metrics (paginated, needs dates).

get_product_performance_summary

Metrics for specific ASINs (needs dates).

get_product_ppc_metrics

PPC data by product (needs dates).

get_bsr_history

Best Seller Rank HISTORY for one ASIN — main-category and per-subcategory rank time series, for questions about rank movement and seasonality. Points are event-based, not daily, and a subcategory can return an empty series while its siblings are populated. Ranks are not comparable across marketplaces. For the current rank only, search_for_products and get_products_summary already carry a salesRanks snapshot for free. Span capped at 365 days.

get_product_cogs

The stored cost of goods ledger: each SKU's full cost history, one item per SKU per sales channel, with every period as stored (start and end date, CONSTANT or named cost lines, currency, cost per unit) and the cost-line names in use. Filter by SKUs and sales channels; pages of up to 200. Read it before setting cost of goods, since a write replaces every period of the SKU on that channel.

get_product_listing

The stored listing content of up to 20 SKUs: name, bullet points, description, generic keyword, item highlight and price, in the same fields propose_update_listing takes. It is the listing as of the last sync, not a live read from Amazon, so right after an update it usually still shows the old values until the next daily import. Read it before an update so each changed field goes out complete, and use only the row for the storefront the update edits. It cannot confirm that an update landed: check Seller Central for that.

PPC Metrics

Requires an active seller and a date range.
get_ppc_portfolios_metrics

Performance by portfolio.

get_ppc_product_ads_metrics

Performance by product ad.

get_ppc_targets_metrics

Performance by keyword/target.

get_ppc_placements_metrics

Performance by placement (SP only). Server-side filters: asins (2026-05; narrows per-placement metrics), campaignIds (server-side filter, verified 2026-07-30; narrows the aggregate only, since the response is grouped by placement classification and carries no campaignId, so per-campaign numbers need one call per campaign).

get_ppc_search_terms_metrics

Performance by search term (SP only). Server-side filters: campaignIds, asins (both 2026-05).

get_ppc_ams_metrics

Hour-of-day or weekday breakdown of whole-account PPC (Amazon Marketing Stream — SP+SB+SD, SP=7d/SB+SD=14d attribution, bucketed by conversion hour). Available for all regions where the seller is subscribed to AMS via Amazon Ads. Required: groupBy ('hour' or 'day'). Server-side filters: campaignIds, portfolioIds, asins (AND across fields — intersection; OR within array). Near-real-time — endDate can be today (no 2-day lag). Hours in the seller's account-level local timezone (US→PT, DE→CET, UK→GMT/BST). Currency: pass any ISO code; conversion server-side via daily mid-rate at UTC midnight. ⚠ All-zero ≠ no ads — most often deliberate operator dayparting, NOT budget exhaustion; ask the operator before recommending changes; cross-verify with get_account_ppc_metrics.

get_sqp_metrics

Brand Analytics Search Query Performance by (ASIN, ISO week). Data horizon 2026-W15+; SP-only.

PPC Structure

Requires an active seller.
search_for_ppc_campaigns

Find campaigns by name, or scope server-side with statuses (UPPERCASE array), campaignIds, portfolioIds and types. Each response item carries a status field, never state. Only the SINGULAR status request param is rejected with 400 (as of 2026-05-15). Response includes matchType + tags per campaign (2026-05).

get_ppc_portfolios

List portfolios.

get_ppc_ad_groups

List ad groups.

get_ppc_product_ads

List product ads.

get_ppc_targets

List keywords/targets.

get_ppc_negative_keywords

List ad-group-level negative keywords. Campaign-level negatives are not returned by this route.

get_ppc_negative_targets

List existing negative targets (Live API). Required scope: 'sp_campaign' / 'sp_ad_group' / 'sb_ad_group'. Use before pause/archive flows so you have real targetIds.

get_ppc_change_history

PPC modification audit trail.

get_live_campaigns_extended

List campaigns LIVE with serving status, the live daily budget, last-update and creation date (SP/SB/SD). Heavy throttle cost — the persisted creationDate and budget on search_for_ppc_campaigns are free.

get_live_ad_groups

List ad groups LIVE from the Amazon Ads API (SP/SB/SD). Heavy throttle cost — prefer get_ppc_ad_groups.

get_live_keywords

List keywords LIVE from the Amazon Ads API (SP only). Heavy throttle cost — prefer get_ppc_targets.

get_live_targets

List targets LIVE from the Amazon Ads API (SP/SD — SB target lists are not available upstream). Heavy throttle cost.

get_live_product_ads

List product ads LIVE at AD-GROUP level (SP/SB/SD). Heavy throttle cost — prefer get_ppc_product_ads. Carries no ad creative; for Sponsored Brands creative use get_live_sb_ads.

get_live_portfolios

List portfolios LIVE from the Amazon Ads API (SP only). Heavy throttle cost — prefer get_ppc_portfolios.

get_live_negative_keywords

List negative keywords LIVE (SP). level:'campaign' is the ONLY read of campaign-level negatives anywhere — get_ppc_negative_keywords is ad-group-level only.

get_live_sb_ads

List Sponsored Brands ads at CAMPAIGN level LIVE. The only read of SB ad CREATIVE anywhere: headline copy, brand name and logo, Store subpages, and the landing page each ad sends traffic to, plus servingStatus. NOT the same list as get_live_product_ads with adType SB, which is ad-group-level and carries no creative. Server-side filters: campaignIds, adIds, statuses. Heavy throttle cost.

Keyword Research & Audit

Requires an active seller. Keyword tools run over the HTTP Keyword Rank Tracker / Keyword Relevancy APIs (fast); KRT is US/DE/UK/CA only.
get_keyword_ranks

Tracked-keyword rank table for an ASIN. Each row: keywordRankTrackerId, phrase, organicRank/sponsoredRank (null when not ranking; read isOrganicRanked/isSponsoredRanked), searchVolume + searchVolumeRaw, label/tags. Filter (search/labelId), sort, paginate.

get_keyword_rank_history

Per-day rank history for one tracked keyword by keywordRankTrackerId. The startDate→endDate span must be ≤ 360 days.

get_keyword_tracking_limits

Keyword tracking limit / tracked count / remaining slots for an ASIN.

get_keyword_labels

Account-scoped keyword labels ({ labelId, label, color, order }).

get_keyword_tags

Tags on an ASIN's tracked keywords, with per-tag counts.

get_keyword_segments

Keyword segments for an ASIN — named groupings ({ segmentId, name, type, keywordRankTrackerIds[], keywordCount }). A MASTER_SET can hold ~2,000 ids; summarize rather than dump.

get_keyword_comments

Member-authored notes on one tracked keyword, by keywordRankTrackerId. Comments are operator-truth — cite verbatim. An unknown/foreign id returns a 404, not an empty list.

get_keyword_relevancy

Keyword Relevancy table for an ASIN via the Titan Tools dashboard API. Use FIRST for relevance questions (do not infer from PPC search terms). Populated searchVolume, 0-9 relevancy, per-competitor ASIN/brand/rank, phraseUrl; paginated + sortable + dataset picker. Optional ppcCheck adds inPpc/adTypes/matchTypes.

get_keyword_families

Keyword families (root-phrase groupings) for a relevancy dataset. familyId is an opaque string; the page total is the KEYWORD count, NOT the family count.

get_keyword_family_members

Member keywords of one family, by datasetId + the string familyId.

get_relevancy_ranking_status

Poll a relevancy dataset's ranking-recompute status ({ ongoing }). Use after propose_relevancy_ranking_update.

get_ppc_audit

Latest completed PPC Audit metadata + a 5-minute presigned download URL. Click to download the xlsx; the audit data is not inline.

Reports

Requires an active seller. Generates a downloadable file (CSV/XLSX). When the file is a single table its rows usually also come back readable in chat, though occasionally even that can't be read back this way; otherwise you get the download link on its own.
create_custom_report

Generate a downloadable report file (CSV/XLSX), once. 7 report types (DASHBOARD_METRICS, DASHBOARD_PROFIT_AND_LOSS_METRICS, DST_METRICS, PPC_AUDIT, PPC_SEARCH_TERM, PPC_CAMPAIGNS, SEARCH_QUERY_PERFORMANCE), each accepting only certain dateRangeType values. marketplaces are storefront URLs (e.g. Amazon.com), not IDs. A report cannot be set to repeat from a connected app; a report on a repeat is a scheduled task in Titan AI chat.

get_custom_report

Single-shot poll for a report's status. DONE → a downloadUrl for the file itself that opens with no Titan Tools login, and, when the file could be read as a single table, the report's rows, comma-separated with a column header, paged via rowOffset/rowLimit (default 100 rows, check hasMore); rows are absent when it could not, so hand over the link then; IN_PROGRESS → call again in ~5-25s (SEARCH_QUERY_PERFORMANCE usually takes about 5 to 10 minutes); NOT_FOUND → no such report for this seller, so create it once more; NO_DATA_AVAILABLE / FAILED / CANCELLED / DELETED handled per status.

create_live_report

Generate a raw Amazon SP-API report file on demand. 61 report types across orders, returns, listings, FBA inventory and fees, the inventory ledger, Brand Analytics (Brand Registry members), seller performance and feedback, and coupon and promotion performance. A refused request names that type's exact rules. Async: returns a reportId; create every report first, then fetch them later with get_live_report. The inventory ledger detail report is limited to about one per seller per hour, so a second one while the first is generating is refused. Files are deleted 24 hours after generation. marketplace is a single storefront URL (e.g. Amazon.com), not an ID.

get_live_report

Single-shot poll for a live report's status. DONE with ready:true → the report's rows, tab-separated with a column header, paged via rowOffset/rowLimit (default 100 rows, up to 1000, check hasMore), plus a downloadUrl for the file itself that opens with no Titan Tools login and stops working 24 hours after generation; DONE with ready:false and reason NO_DATA_ROWS → the file generated with column headers only, so no link is handed over; IN_PROGRESS → stop and fetch it later with the same reportId, in this session or another, within 24 hours (most reports take ~5 minutes); CANCELLED → Amazon had no data, not an error; FAILED / DELETED → create a new report.

AWD / Inventory

Requires an active seller; US-only (always runs against Amazon.com).
get_awd_inventory

List Amazon Warehousing & Distribution (AWD) inventory per SKU: totalOnhandQuantity (in the AWD warehouse), totalInboundQuantity (en route to AWD), and a per-SKU availableDistributable / replenishment / reserved breakdown. Returns Amazon's payload verbatim incl. nextToken (caller-driven pagination). An empty list means enrolled-but-no-stock, not 'no AWD'.

get_awd_inbound_shipments

List shipments en route to the AWD warehouses, filterable by shipmentStatus (CREATED/SHIPPED/IN_TRANSIT/RECEIVING/DELIVERED/CLOSED/CANCELLED) and update window. Returns Amazon's payload verbatim incl. nextToken.

get_awd_replenishment_orders

List AWD → FBA replenishment orders, including eligibleProducts, outboundShipments, and distributionIneligibleReasons (e.g. NO_NETWORK_INVENTORY_RESERVED). Returns Amazon's payload verbatim incl. nextToken.

get_awd_inbound_order

Read one AWD inbound order: its status, origin and destination, the packages it inbounds and its preferences. destinationDetails.shipmentId is the AWD shipment it created, which get_awd_inbound_shipment reads. Takes orderId, shipments[].orderId from get_awd_inbound_shipments. AWD is US-only: this always reads Amazon.com, whatever storefront the conversation is on. Live Amazon read, read-only; the store is the active one, never pass a seller id. AWD_NOT_ENROLLED means Titan Tools lacks the AWD role or the account is not AWD-enrolled, which is granted on Amazon's side only: read the message field and never offer a reconnect. AWD_NO_US_CONNECTION means no US Selling-Partner connection. AMAZON_THROTTLED means Amazon's per-seller AWD quota is used up for now: do not retry in this turn.

get_awd_inbound_eligibility

Check whether a set of cases or pallets can be sent to AWD, before any inbound order exists. A read: it creates nothing. Send packagesToInbound, each a CASE (with contents.products) or a PALLET (with contents.packages, the cases on it), its measurements (weight required) and how many of it. An INELIGIBLE answer comes back inside a successful response, with Amazon's reason codes per package (for example EXPECTED_SELF_LABEL_OWNER). That is the answer, not a failure: quote each code with its package, and treat a code you do not recognise as "not eligible, reason unknown". AWD is US-only: this always reads Amazon.com, whatever storefront the conversation is on. Live Amazon read, read-only; the store is the active one, never pass a seller id. AWD_NOT_ENROLLED means Titan Tools lacks the AWD role or the account is not AWD-enrolled, which is granted on Amazon's side only: read the message field and never offer a reconnect. AWD_NO_US_CONNECTION means no US Selling-Partner connection. AMAZON_THROTTLED means Amazon's per-seller AWD quota is used up for now: do not retry in this turn.

get_awd_inbound_shipment

Read one AWD inbound shipment: status, carrier and tracking, origin and destination warehouse, and its packages. With skuQuantities SHOW it adds the expected and received quantity per SKU, which is the read for "how much did AWD receive" and for a shortfall. Received below expected on a shipment still RECEIVING is normal; on a CLOSED one it is worth raising. AWD is US-only: this always reads Amazon.com, whatever storefront the conversation is on. Live Amazon read, read-only; the store is the active one, never pass a seller id. AWD_NOT_ENROLLED means Titan Tools lacks the AWD role or the account is not AWD-enrolled, which is granted on Amazon's side only: read the message field and never offer a reconnect. AWD_NO_US_CONNECTION means no US Selling-Partner connection. AMAZON_THROTTLED means Amazon's per-seller AWD quota is used up for now: do not retry in this turn.

get_awd_inbound_shipment_labels

Ask Amazon to generate the labels of an AWD inbound shipment, and get their download link once they are ready. Generating them is an asynchronous Amazon job: the first answer is usually labelStatus GENERATING with no link, and the result then carries a _note. That is normal: do not call again in this turn, tell the member the labels will be ready shortly and to ask again. Once GENERATED it carries labelDownloadURL. labelDownloadURL is a Titan AI link that opens for this member only (Amazon's own link dies within minutes, so Titan fetches the file at once): give it to the member, never put it in a note, report or task. AWD is US-only: this always reads Amazon.com, whatever storefront the conversation is on. Live Amazon call that starts label generation and changes nothing in the shipment; the store is the active one, never pass a seller id. AWD_NOT_ENROLLED means Titan Tools lacks the AWD role or the account is not AWD-enrolled, which is granted on Amazon's side only: read the message field and never offer a reconnect. AWD_NO_US_CONNECTION means no US Selling-Partner connection. AMAZON_THROTTLED means Amazon's per-seller AWD quota is used up for now: do not retry in this turn.

get_awd_label_page_types

List the label page types Amazon offers for an AWD inbound shipment (for example PLAIN_PAPER, LETTER_6, THERMAL), with labelStatus. Amazon may add page types beyond any list, so report what it returns. AWD is US-only: this always reads Amazon.com, whatever storefront the conversation is on. Live Amazon read, read-only; the store is the active one, never pass a seller id. AWD_NOT_ENROLLED means Titan Tools lacks the AWD role or the account is not AWD-enrolled, which is granted on Amazon's side only: read the message field and never offer a reconnect. AWD_NO_US_CONNECTION means no US Selling-Partner connection. AMAZON_THROTTLED means Amazon's per-seller AWD quota is used up for now: do not retry in this turn.

get_awd_replenishment_order

Read one AWD to FBA replenishment order: status, the products and quantities it moves, its outbound shipments and any distribution ineligibility reasons. Takes orderId from get_awd_replenishment_orders. AWD is US-only: this always reads Amazon.com, whatever storefront the conversation is on. Live Amazon read, read-only; the store is the active one, never pass a seller id. AWD_NOT_ENROLLED means Titan Tools lacks the AWD role or the account is not AWD-enrolled, which is granted on Amazon's side only: read the message field and never offer a reconnect. AWD_NO_US_CONNECTION means no US Selling-Partner connection. AMAZON_THROTTLED means Amazon's per-seller AWD quota is used up for now: do not retry in this turn.

get_awd_outbound_orders

List AWD outbound orders, the orders that move stock out of AWD. Replenishment orders appear here too, under the same orderId as in get_awd_replenishment_orders. Filter by last update with updatedAfter and updatedBefore, sort with sortOrder, and page with nextToken: while the answer carries nextToken, call again with it to get the next page. AWD is US-only: this always reads Amazon.com, whatever storefront the conversation is on. Live Amazon read, read-only; the store is the active one, never pass a seller id. AWD_NOT_ENROLLED means Titan Tools lacks the AWD role or the account is not AWD-enrolled, which is granted on Amazon's side only: read the message field and never offer a reconnect. AWD_NO_US_CONNECTION means no US Selling-Partner connection. AMAZON_THROTTLED means Amazon's per-seller AWD quota is used up for now: do not retry in this turn.

get_awd_outbound_order

Read one AWD outbound order: status, the packages and products it moves, its shipments, and executionErrors when Amazon could not carry it out (quote those as Amazon states them). AWD is US-only: this always reads Amazon.com, whatever storefront the conversation is on. Live Amazon read, read-only; the store is the active one, never pass a seller id. AWD_NOT_ENROLLED means Titan Tools lacks the AWD role or the account is not AWD-enrolled, which is granted on Amazon's side only: read the message field and never offer a reconnect. AWD_NO_US_CONNECTION means no US Selling-Partner connection. AMAZON_THROTTLED means Amazon's per-seller AWD quota is used up for now: do not retry in this turn.

FBA Inbound

Requires an active seller. Live Amazon reads. The get_fba_inbound_* reads (Amazon's 2024-03-20 inbound API: Send to Amazon plans, packing, placement, transportation and shipments) take the 38-character sh... shipment id; the get_fba_legacy_* shipment reads take the FBA... confirmation id Seller Central shows.
get_fba_inbound_plans

List the store FBA inbound plans (Send to Amazon workflows) from Amazon, newest first by default. Each plan carries inboundPlanId ("wf..."), name, status (ACTIVE, VOIDED or SHIPPED), createdAt and lastUpdatedAt. IMPORTANT: this list ALSO contains Amazon Warehousing and Distribution (AWD) plans, and nothing in a row tells them apart (on one test store 9 of 10 ACTIVE plans were AWD). Every other get_fba_inbound_* read answers code AWD_PLAN with error:false on an AWD plan. That is the signal to skip the plan, not a failure to report; use get_awd_inbound_shipments, get_awd_inventory and get_awd_replenishment_orders for AWD. Filter with status, sort with sortBy (LAST_UPDATED_TIME or CREATION_TIME) and sortOrder, and page with paginationToken and pagination.nextToken. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_plan

Read one FBA inbound plan: status, source address, marketplaces, and the ids the other reads need: packingOptions, placementOptions and shipments (each shipment with its "sh..." shipmentId and status). On an AWD plan it answers code AWD_PLAN with error:false: that is not a failure, it means the plan is an Amazon Warehousing and Distribution plan, so skip it and use get_awd_inbound_shipments, get_awd_inventory and get_awd_replenishment_orders for it. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_plan_items

List the items on an FBA inbound plan: msku, asin, fnsku, quantity, labelOwner, prepOwner and prepInstructions. On an AWD plan it answers code AWD_PLAN with error:false: that is not a failure, it means the plan is an Amazon Warehousing and Distribution plan, so skip it and use get_awd_inbound_shipments, get_awd_inventory and get_awd_replenishment_orders for it. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_plan_boxes

List the boxes on an FBA inbound plan: boxId, packageId, dimensions, weight, quantity, items and contentInformationSource. Empty until box content has been entered. On an AWD plan it answers code AWD_PLAN with error:false: that is not a failure, it means the plan is an Amazon Warehousing and Distribution plan, so skip it and use get_awd_inbound_shipments, get_awd_inventory and get_awd_replenishment_orders for it. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_plan_pallets

List the pallets on an FBA inbound plan: packageId, dimensions, weight, quantity and stackability. Empty for a small-parcel plan, which is normal. On an AWD plan it answers code AWD_PLAN with error:false: that is not a failure, it means the plan is an Amazon Warehousing and Distribution plan, so skip it and use get_awd_inbound_shipments, get_awd_inventory and get_awd_replenishment_orders for it. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_packing_options

List the packing options of an FBA inbound plan: packingOptionId ("po..."), status, packingGroups ("pg..." ids), fees, discounts and supported shipping configurations. An empty list on a confirmed or shipped plan is normal, not a defect: Amazon drops the options once one is confirmed, so the packing-group reads usually have nothing to read after that. On an AWD plan it answers code AWD_PLAN with error:false: that is not a failure, it means the plan is an Amazon Warehousing and Distribution plan, so skip it and use get_awd_inbound_shipments, get_awd_inventory and get_awd_replenishment_orders for it. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_packing_group_items

List the items in one packing group of an FBA inbound plan: msku, asin, fnsku, quantity, labelOwner and prepOwner. Needs a packingGroupId from get_fba_inbound_packing_options; Amazon answers NOT_FOUND once the plan has moved past packing and the group no longer exists. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_packing_group_boxes

List the boxes in one packing group of an FBA inbound plan: dimensions, weight, quantity and items. Needs a packingGroupId from get_fba_inbound_packing_options; Amazon answers NOT_FOUND once the group no longer exists. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_placement_options

List the placement options of an FBA inbound plan: placementOptionId ("pl..."), status, fees, discounts, expiration and the shipmentIds ("sh...") each option would create. On an AWD plan it answers code AWD_PLAN with error:false: that is not a failure, it means the plan is an Amazon Warehousing and Distribution plan, so skip it and use get_awd_inbound_shipments, get_awd_inventory and get_awd_replenishment_orders for it. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_transportation_options

List the transportation options of an FBA inbound plan: transportationOptionId ("to..."), carrier, shippingMode, shippingSolution, quote and preconditions. Narrow it with placementOptionId OR shipmentId. On an AWD plan it answers code AWD_PLAN with error:false: that is not a failure, it means the plan is an Amazon Warehousing and Distribution plan, so skip it and use get_awd_inbound_shipments, get_awd_inventory and get_awd_replenishment_orders for it. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_delivery_window_options

List the delivery window options of one shipment of an FBA inbound plan: deliveryWindowOptionId ("dw..."), startDate, endDate, availabilityType and validUntil. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_shipment

Read one shipment of an FBA inbound plan: status, destination fulfillment center, source address, dates, tracking, freight details and shipmentConfirmationId. shipmentConfirmationId is the "FBA..." id Seller Central shows and the legacy v0 inbound reads take; this tool and the other get_fba_inbound_shipment_* reads take the "sh..." shipmentId instead. The response can include the contact name, phone and email on the shipment; share them only with the member who owns the store. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_shipment_items

List the items in one shipment of an FBA inbound plan: msku, asin, fnsku, quantity, labelOwner, prepOwner and expiration. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_shipment_boxes

List the boxes in one shipment of an FBA inbound plan: boxId, packageId, dimensions, weight, quantity and items. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_shipment_pallets

List the pallets in one shipment of an FBA inbound plan: packageId, dimensions, weight, quantity and stackability. Empty for a small-parcel shipment, which is normal. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_content_update_previews

List the content update previews of one shipment of an FBA inbound plan: contentUpdatePreviewId ("cu..."), expiration, requestedUpdates and transportationOption. Usually empty: a preview exists only after someone asked Amazon to change the shipment contents in Seller Central. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_content_update_preview

Read one content update preview of a shipment. The contentUpdatePreviewId only exists after a content change was requested in Seller Central, so take it from get_fba_inbound_content_update_previews and never guess one; any other id answers NOT_FOUND. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_self_ship_appointment_slots

List the self-ship appointment slots of one shipment. It only answers once slots have been generated for the shipment, and only in marketplaces that offer self-ship appointments; otherwise Amazon refuses it, which means "not available for this shipment or marketplace", not a defect. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_prep_details

Read the FBA prep requirements of up to 100 merchant SKUs: prepCategory, prepTypes, and who may do the labelling and prep (allOwnersConstraint, labelOwnerConstraint, prepOwnerConstraint). Does not need a plan. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_item_compliance_details

Read the compliance details (tax details, HSN code) of up to 100 merchant SKUs. Amazon does not offer this read in the US, UK or DE: there it answers code NOT_IN_MARKETPLACE with error:false, which means the data does not exist for that storefront, not that the call failed. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_item_labels

Get printable FNSKU item labels for up to 100 merchant SKUs as a PDF link. Despite the upstream name this creates nothing in the store: it only renders labels. labelType is STANDARD_FORMAT (sheets; pick pageType, for example Letter_30 or A4_21) or THERMAL_PRINTING (set width and height, 25 to 100). The result carries a Titan AI download link that opens for this member only (Amazon's own link dies within seconds, so Titan fetches the file at once): give it to the member as a link, never put it in a note, report or task. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_operation_status

Read the status of an FBA inbound operation (IN_PROGRESS, SUCCESS or FAILED, with any operationProblems). The operationId only exists after an inbound write was started in Seller Central or by another app; never guess one, and any other id answers NOT_FOUND. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_inbound_delivery_challan

Get the delivery challan PDF of one shipment. India only (Amazon.in) and only for partnered-carrier shipments; anywhere else Amazon refuses it, which means "not available for this marketplace or shipment", not a defect. The result carries a Titan AI download link that opens for this member only (Amazon's own link dies within seconds, so Titan fetches the file at once): give it to the member as a link, never put it in a note, report or task. Live Amazon read, read-only. The store is the active one; never pass a seller id.

get_fba_legacy_shipments

The seller's FBA inbound shipments, CLOSED ones included, by status, shipment id or last-update window: ShipmentId, name, status, destination fulfillment center and ship-from address. Page with the NextToken the answer returns.

get_fba_legacy_shipment_items

The items of every inbound shipment updated in a date range, with quantity shipped, received and per case. One call is one page: keep calling with the NextToken until none comes back. To reconcile a shipment, use get_fba_legacy_shipment_items_by_shipment.

get_fba_legacy_shipment_items_by_shipment

One shipment's items, per SKU: units shipped against units Amazon received. The read for a receiving shortfall.

get_fba_legacy_labels

A short-lived download link for a shipment's box or pallet labels, in the page type you choose. UNIQUE labels need the carton ids. Amazon refuses some page types for some shipments; try another.

get_fba_legacy_bill_of_lading

A short-lived download link for the bill of lading of a partnered-carrier truckload shipment. Any other shipment has none, which is an answer, not an error.

get_fba_legacy_prep_instructions

Amazon's labeling and prep requirements, and prep fees, for up to 50 SKUs or ASINs shipping to a country. Unknown SKUs come back in InvalidSKUList inside a normal answer.

get_fba_inbound_eligibility

Whether an ASIN can be sent to FBA (INBOUND) or commingled (COMMINGLING), with Amazon's FBA_INB reason codes when it cannot.

Orders & Returns

Requires an active seller. The get_order*, get_returns*, get_refund_return_mismatches and get_seller_feedback reads use Titan Tools' stored copy of the seller's Amazon reports, a few hours behind Amazon. The get_live_order* reads ask Amazon right now and are rate limited per seller.
get_orders

List the seller's Amazon orders, one row per order: status, purchase and last-update time, marketplace, fulfillment channel, business flag, ship-to city and country, line and unit counts, orderTotal (what the buyer paid: tax added on US, CA and MX, included on EU, UK, JP and AU) and promotionTotal, and the refund and return status (NONE, PARTIAL, FULL) with units and refunded principal. For refunded orders filter refundStatuses ["PARTIAL","FULL"], never a date: a refund does not move any order date. amazonOrderIds looks orders up whatever their date. Multi-channel orders show salesChannel "Non-Amazon ..." and orderTotal 0: they were sold elsewhere and fulfilled by Amazon, so leave them out of Amazon sales. refundStatuses, returnStatuses, skus, asins and ids are fast; fulfillmentChannels and isBusinessOrder are slow on large sellers. The window is at most 92 days; walk a longer period window by window. Dates are required unless amazonOrderIds is given. Money that reduces revenue (refunds, fees, promotions) is negative. Amounts are in each row's own currencyCode and never converted, so never add amounts across currencies. A refund amount is the item principal, tax excluded, before promotions, so a full refund can be larger than the order total. Reads Titan Tools' stored copy of the seller's Amazon reports, usually a few hours behind Amazon: for orders placed in the last few hours, use get_live_orders, or say how recent the newest stored order is. The store is the active one; never pass a seller id. Dates are YYYY-MM-DD days in the seller's home marketplace timezone, both inclusive. Page with page and pageSize while hasNext is true; total counts every page. Follow any _notes in the result.

get_order_items

List order lines, one row per line: the order header, sku, asin, title, quantity, itemPrice (the line total, not per unit), taxes, shipping, gift wrap, promotions, and the line's refund and return (units, principal, last refund day, last return time and condition). Use it for one order's contents (pass amazonOrderIds), units by SKU, or which products were refunded; refundStatuses and returnStatuses apply per line. A refund of a SKU the order does not hold counts on get_orders totals only, so lines summed per order can come out lower than the order. The window is at most 92 days; walk a longer period window by window. Dates are required unless amazonOrderIds is given. Money that reduces revenue (refunds, fees, promotions) is negative. Amounts are in each row's own currencyCode and never converted, so never add amounts across currencies. A refund amount is the item principal, tax excluded, before promotions, so a full refund can be larger than the order total. Reads Titan Tools' stored copy of the seller's Amazon reports, usually a few hours behind Amazon: for orders placed in the last few hours, use get_live_orders, or say how recent the newest stored order is. The store is the active one; never pass a seller id. Dates are YYYY-MM-DD days in the seller's home marketplace timezone, both inclusive. Page with page and pageSize while hasNext is true; total counts every page. Follow any _notes in the result.

get_order_events

List the fees and refunds Amazon posted on orders: SHIPMENT rows carry the FBA, referral, digital services and closing fees of a line on one posted day; REFUND rows the refunded units and principal. The scope is the orders purchased in the window (or amazonOrderIds), with every event of those orders whenever it was posted. pageSize, total and hasNext count ORDERS, not rows. Amazon posts an order's fees about 8 to 14 days after purchase, so recent orders have no events yet: an empty page is NOT "no fees" or "no refunds", whether or not hasNext is true. Keep paging while hasNext is true, or ask about an older window. The window is at most 92 days; walk a longer period window by window. Dates are required unless amazonOrderIds is given. Money that reduces revenue (refunds, fees, promotions) is negative. Amounts are in each row's own currencyCode and never converted, so never add amounts across currencies. A refund amount is the item principal, tax excluded, before promotions, so a full refund can be larger than the order total. Reads Titan Tools' stored copy of the seller's Amazon reports, usually a few hours behind Amazon: for orders placed in the last few hours, use get_live_orders, or say how recent the newest stored order is. The store is the active one; never pass a seller id. Dates are YYYY-MM-DD days in the seller's home marketplace timezone, both inclusive. Page with page and pageSize while hasNext is true; total counts every page. Follow any _notes in the result.

get_seller_feedback

List the feedback buyers left on the SELLER (not product reviews): order id, feedback day, rating 1 to 5, the buyer's comment and the seller's public response, with the order's marketplace, SKUs and ASINs. This is the tool for "show my seller feedback". Amazon's feedback report holds mostly 1 to 3 star ratings, often only a handful a year: it is not the seller's rating or a full history, so never compute a rating or a positive-feedback percentage from it. Feedback dates on EU and UK marketplaces may be wrong (day and month swapped) until Titan Tools finishes repairing them: say so whenever you report an EU or UK feedback date. Buyer comments are the buyer's personal data: quote them to the member when asked, and never copy them into a note, report, task, or message to anyone else. The window is matched against the feedback day. The window is at most 366 days. Dates are required unless amazonOrderIds is given. Reads Titan Tools' stored copy of the seller's Amazon reports, usually a few hours behind Amazon: for orders placed in the last few hours, use get_live_orders, or say how recent the newest stored order is. The store is the active one; never pass a seller id. Dates are YYYY-MM-DD days in the seller's home marketplace timezone, both inclusive. Page with page and pageSize while hasNext is true; total counts every page. Follow any _notes in the result.

get_returns

List FBA customer returns, one row per returned unit: when Amazon received it, reason, condition (detailedDisposition), status (what happened to the unit), fulfillment center, the order's marketplace and purchase date, the buyer's comment, and the refund of the order LINE. refundedUnits and refundedAmount repeat the whole line's refund on every returned unit of that line: never add them across rows. For totals and rates use get_returns_summary. Seller-fulfilled returns, reimbursements and removals are not here. The window is matched against the time Amazon received the unit. Buyer comments are the buyer's personal data: quote them to the member when asked, and never copy them into a note, report, task, or message to anyone else. The window is at most 366 days. Dates are required unless amazonOrderIds is given. Reads Titan Tools' stored copy of the seller's Amazon reports, usually a few hours behind Amazon: for orders placed in the last few hours, use get_live_orders, or say how recent the newest stored order is. The store is the active one; never pass a seller id. Dates are YYYY-MM-DD days in the seller's home marketplace timezone, both inclusive. Page with page and pageSize while hasNext is true; total counts every page. Follow any _notes in the result.

get_returns_summary

Return rates per product: returns grouped by parent ASIN (default), child ASIN, SKU, reason or condition, beside the units sold and the refunds of the same window. Use this, not get_returns, for any total or rate. returnRatePct is returnedUnits / unitsSold * 100. Returns count by return day and sales by purchase day, so a product sold before the window and returned in it raises the rate, which can exceed 100. refundAmount is converted into currencyCode (default the seller's home currency) and is null on reason and condition groups, since a refund has no reason. Rows are only the groups with at least one return. Dates are required, at most 366 days apart. Reads Titan Tools' stored copy of the seller's Amazon reports, usually a few hours behind Amazon: for orders placed in the last few hours, use get_live_orders, or say how recent the newest stored order is. The store is the active one; never pass a seller id. Dates are YYYY-MM-DD days in the seller's home marketplace timezone, both inclusive. Page with page and pageSize while hasNext is true; total counts every page. Follow any _notes in the result.

get_refund_return_mismatches

Find refunds that have no return (REFUNDED_WITHOUT_RETURN) and returns that have no refund (RETURNED_WITHOUT_REFUND), to chase missing returns or missing refunds. The counterpart is looked for at any date, as of now. Only FBA returns are known, so by default refunds of seller-fulfilled orders are left out. An empty page for a seller with no stored refunds or returns means nothing could be reconciled, not that everything matches. The window is at most 366 days. Dates are required unless amazonOrderIds is given. Money that reduces revenue (refunds, fees, promotions) is negative. Amounts are in each row's own currencyCode and never converted, so never add amounts across currencies. A refund amount is the item principal, tax excluded, before promotions, so a full refund can be larger than the order total. Reads Titan Tools' stored copy of the seller's Amazon reports, usually a few hours behind Amazon: for orders placed in the last few hours, use get_live_orders, or say how recent the newest stored order is. The store is the active one; never pass a seller id. Dates are YYYY-MM-DD days in the seller's home marketplace timezone, both inclusive. Page with page and pageSize while hasNext is true; total counts every page. Follow any _notes in the result.

get_live_orders

Search the seller's orders on Amazon right now, for "orders in the last few hours" or the current status of recent orders. Send exactly one of createdAfter or lastUpdatedAfter (an ISO 8601 instant; a bare date is the start of that UTC day). Each order carries orderId, createdTime, lastUpdatedTime, salesChannel and orderItems, plus any includedData. Amazon allows a short burst, then about one call every three minutes per seller: for counts, totals, refunds, returns or anything older than a day, use get_orders, which reads the stored copy and has no such limit. Live Amazon read, read-only, buyer personal data removed; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside the seller's Amazon limit: wait retryAfterSeconds and do not split the request. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection for that storefront.

get_live_order

Read one order on Amazon right now: status, items, and any includedData (for example FULFILLMENT for shipping detail, PROCEEDS for what the seller is paid). Use it when the stored copy (get_orders, get_order_items) is not recent enough for one order. An unknown order id is NOT_FOUND. Live Amazon read, read-only, buyer personal data removed; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside the seller's Amazon limit: wait retryAfterSeconds and do not split the request. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection for that storefront.

get_live_order_review_request

Check whether Amazon's "Request a Review" (product review and seller feedback) is available for one order right now. An empty actions list means it cannot be sent now (the order is too recent, too old, or cancelled). This only reads: Titan AI cannot send the request, so never say it was sent; the member sends it from the order in Seller Central. marketplace must be the storefront the order was placed on. Live Amazon read, read-only, buyer personal data removed; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside the seller's Amazon limit: wait retryAfterSeconds and do not split the request. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection for that storefront.

Review Topics

Requires an active seller. Amazon's Customer Feedback API, read live on Amazon.com, .co.uk, .fr, .it, .de, .es and .co.jp: Amazon's topic summaries of a product's reviews and of its category's reviews and return reasons, never the individual reviews. Rate limited to one call per second per seller per tool.
get_review_topics

What customers praise and complain about in one product's Amazon reviews, for questions like "what do reviews say", "why are customers unhappy" or "top complaints". Returns up to about 10 positive and 10 negative review topics for one ASIN, each with numberOfMentions (reviews that mention it), occurrencePercentage (share of reviews, 0 to 100), starRatingImpact (stars, signed), up to 3 short review snippets and subtopics. Covers reviews written in dateRange, one six-month window ending about 10 days ago: show its dates. To compare with the category, call get_review_category, then get_category_review_topics, which normally covers the same window (check both dateRange values and say so if they differ), and take the category average from there; this read carries no category figures. These are Amazon's topic summaries, not reviews: there is no review text, id, date, per-review rating, author or link, and they do not show that every review was read. Never quote a snippet as a full review and never state a total review count. A missing positiveTopics or negativeTopics list means Amazon reported none on that side. reviewData "none" means Amazon has too few reviews for this product: say so, it is not a failure. Live Amazon read, read-only, Amazon.com, Amazon.co.uk, Amazon.fr, Amazon.it, Amazon.de, Amazon.es and Amazon.co.jp only; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside Amazon's limit of one call per second per seller: wait retryAfterSeconds. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection in that storefront's region.

get_review_trends

How the share of reviews mentioning one product's top positive and negative review topics moved over time, for questions like "are complaints about sizing getting better". Each topic has up to six points, with values for the ASIN and its parent ASIN as shares of reviews (0 to 100); there are no counts. Trends end about two months before today. Points are listed OLDEST FIRST, and each carries window, the first and last day it covers (both included). Each point is a six-month window and consecutive points share five months, so compare them and never add them up. Show every point in order with its window, not only the first and last, and call a topic rising or falling only when most steps move that way; few reviews make a single jump unreliable. Never compare a trend point with the single window of a topics read. For the topics themselves with counts and snippets, use get_review_topics; for the category's own trend, get_category_review_trends. These are Amazon's topic summaries, not reviews: there is no review text, id, date, per-review rating, author or link, and they do not show that every review was read. Never quote a snippet as a full review and never state a total review count. A missing positiveTopics or negativeTopics list means Amazon reported none on that side. reviewData "none" means Amazon has too few reviews for this product: say so, it is not a failure. Live Amazon read, read-only, Amazon.com, Amazon.co.uk, Amazon.fr, Amazon.it, Amazon.de, Amazon.es and Amazon.co.jp only; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside Amazon's limit of one call per second per seller: wait retryAfterSeconds. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection in that storefront's region.

get_review_category

The Amazon category (browse node) a product's reviews and returns are compared with: browseNodeId and displayName for one ASIN. Call it first whenever a member wants a product compared with its category, or asks about the category's reviews or why customers return products like it, then pass browseNodeId to get_category_review_topics, get_category_review_trends, get_category_return_topics and get_category_return_trends. category "none" means Amazon has no review category for this product: say so, it is not a failure. Live Amazon read, read-only, Amazon.com, Amazon.co.uk, Amazon.fr, Amazon.it, Amazon.de, Amazon.es and Amazon.co.jp only; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside Amazon's limit of one call per second per seller: wait retryAfterSeconds. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection in that storefront's region.

get_category_review_topics

What customers praise and complain about across one Amazon category (browse node), for comparing a product with its category average or for "what do customers in this category complain about". Returns up to about 10 positive and 10 negative topics for the products in the category, each with browseNodeMetrics.occurrencePercentage.allProducts (the category average share of reviews, 0 to 100) and topTwentyFivePercentProducts (the top quarter of products), starRatingImpact, up to 3 short review snippets and subtopics. Covers dateRange, normally the same window as get_review_topics (check both and say so if they differ), so allProducts here is the category average to set beside a product topic's occurrencePercentage. A product topic absent from this list is not among the category's top topics: say so, never estimate it. Get browseNodeId from get_review_category for the product. These are Amazon's topic summaries of the category's reviews, not reviews: there is no review text, id, date, per-review rating, author or link, and they do not show that every review was read. Never quote a snippet as a full review and never state a total review count. A missing positiveTopics or negativeTopics list means Amazon reported none on that side. reviewData "none" means Amazon has too few reviews in this category: say so, it is not a failure. Live Amazon read, read-only, Amazon.com, Amazon.co.uk, Amazon.fr, Amazon.it, Amazon.de, Amazon.es and Amazon.co.jp only; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside Amazon's limit of one call per second per seller: wait retryAfterSeconds. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection in that storefront's region.

get_category_review_trends

How the share of reviews mentioning one Amazon category's top positive and negative topics moved over time, for "how are complaints in this category trending". Each topic has up to six points with browseNodeMetrics.occurrencePercentage.allProducts (share of the category's reviews, 0 to 100); there are no counts. Points are listed OLDEST FIRST, and each carries window, the first and last day it covers (both included). Each point is a six-month window and consecutive points share five months, so compare them and never add them up. Show every point in order with its window, not only the first and last, and call a topic rising or falling only when most steps move that way; few reviews make a single jump unreliable. Never compare a trend point with the single window of a topics read. Get browseNodeId from get_review_category for the product. These are Amazon's topic summaries of the category's reviews, not reviews: there is no review text, id, date, per-review rating, author or link, and they do not show that every review was read. Never quote a snippet as a full review and never state a total review count. A missing positiveTopics or negativeTopics list means Amazon reported none on that side. reviewData "none" means Amazon has too few reviews in this category: say so, it is not a failure. Live Amazon read, read-only, Amazon.com, Amazon.co.uk, Amazon.fr, Amazon.it, Amazon.de, Amazon.es and Amazon.co.jp only; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside Amazon's limit of one call per second per seller: wait retryAfterSeconds. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection in that storefront's region.

get_category_return_topics

Why customers return products in one Amazon category (browse node), for questions like "why do customers return products like mine". Returns Amazon's top return reasons from customers' return comments, each with browseNodeMetrics.occurrencePercentage.allProducts (the share of return comments that mention it, 0 to 100), over dateRange: show its dates. Amazon gives return reasons per category only, never per product. Get browseNodeId from get_review_category for the product. These are Amazon's topic summaries of customers' return comments for the whole category: there is no return count, order, date, customer or product, so never state how many units were returned and never present them as one product's own returns. returnData "none" means Amazon has too little return feedback in this category: say so, it is not a failure. Live Amazon read, read-only, Amazon.com, Amazon.co.uk, Amazon.fr, Amazon.it, Amazon.de, Amazon.es and Amazon.co.jp only; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside Amazon's limit of one call per second per seller: wait retryAfterSeconds. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection in that storefront's region.

get_category_return_trends

How the return reasons of one Amazon category (browse node) moved over time, for "which return reasons are rising". Each reason has up to six points with browseNodeMetrics.occurrencePercentage.allProducts (the share of return comments that mention it, 0 to 100). Points are listed OLDEST FIRST, and each carries window, the first and last day it covers (both included). Each point is a six-month window and consecutive points share five months, so compare them and never add them up. Show every point in order with its window, not only the first and last, and call a topic rising or falling only when most steps move that way; few reviews make a single jump unreliable. Never compare a trend point with the single window of a topics read. Get browseNodeId from get_review_category for the product. These are Amazon's topic summaries of customers' return comments for the whole category: there is no return count, order, date, customer or product, so never state how many units were returned and never present them as one product's own returns. returnData "none" means Amazon has too little return feedback in this category: say so, it is not a failure. Live Amazon read, read-only, Amazon.com, Amazon.co.uk, Amazon.fr, Amazon.it, Amazon.de, Amazon.es and Amazon.co.jp only; the store is the active one, never pass a seller id. RATE_LIMITED means Titan paused the call to keep inside Amazon's limit of one call per second per seller: wait retryAfterSeconds. NO_CONNECTION_FOR_MARKETPLACE means the seller has no Amazon connection in that storefront's region.

Compass / Inventory Planning

Requires an active seller. Titan Tools inventory-planning data, not your Amazon account.
get_compass_suppliers

The store's Compass supplier book: each supplier's lead, freight, buffer and total landed time in days, its deposit, on-shipping and balance payment split, and its balance terms. SKUs take these terms from the supplier they are linked to.

get_compass_product_configs

Per-SKU Compass settings, one row per SKU per sales channel: config status, linked supplier and its terms, when freight is paid, and the Demand Plan ordering fields (min stock days, carton size, target days of stock, MOQ, low price tier MOQ). Filter by channel, SKU, ASIN, brand, name, status, supplier or config status. An unsupported channel is refused rather than answered with zero rows.

Actions

Your AI application decides whether to ask you first. Read the safety guide before enabling.
propose_create_sp_portfolioMedium

Create SP portfolios.

propose_update_sp_portfolioMedium

Update SP portfolios.

propose_create_sp_campaignHIGH

Create SP campaigns.

propose_update_sp_campaignConditional

Pause, update budget, update name, or update schedule.

propose_create_sp_campaign_neg_keywordLow

Add campaign-level negative keywords.

propose_create_sp_ad_groupMedium

Create SP ad groups.

propose_update_sp_ad_groupConditional

Pause, change default bid, or change name.

propose_create_sp_keywordHIGH

Add keywords.

propose_update_sp_keywordConditional

Pause or change bid.

propose_create_sp_ad_group_neg_keywordLow

Add ad-group-level negative keywords.

propose_create_sp_targetMedium

Add product/category targets.

propose_update_sp_targetMedium

Update targets (state, bid) — ASIN/category only; keywords go through propose_update_sp_keyword.

propose_create_sp_product_adHIGH

Create new product ads.

propose_update_sp_product_adConditional

Pause or change state.

propose_update_sb_campaignMedium

Update Sponsored Brands campaigns.

propose_update_sb_ad_groupConditional

Update Sponsored Brands ad groups.

propose_update_sb_adConditional

Update Sponsored Brands ads.

propose_update_sb_keywordConditional

Update Sponsored Brands keywords.

propose_update_sb_targetConditional

Update Sponsored Brands targets (requires targetId, adGroupId, and campaignId).

propose_create_sb_ad_group_neg_keywordLow

Add Sponsored Brands ad-group-level negative keywords.

propose_update_sp_campaign_neg_keywordLow

Pause or un-pause existing campaign-level negative keywords. State-only update; archiving has its own tool.

propose_update_sp_ad_group_neg_keywordLow

Pause or un-pause existing ad-group-level negative keywords. State-only update; archiving has its own tool.

propose_update_sb_ad_group_neg_keywordLow

Pause, un-pause, or archive existing Sponsored Brands ad-group negative keywords. Lowercase state values; each item must include keywordId, adGroupId, and campaignId.

propose_create_sp_campaign_neg_targetMedium

Add campaign-level negative targets — block competitor ASINs or brands.

propose_update_sp_campaign_neg_targetLow

Pause or un-pause existing campaign-level negative targets. State-only update; archiving has its own tool.

propose_create_sp_ad_group_neg_targetMedium

Add ad-group-level negative targets — block competitor ASINs or brands at the ad-group level.

propose_update_sp_ad_group_neg_targetLow

Pause or un-pause existing ad-group-level negative targets. State-only update; archiving has its own tool.

propose_create_sb_ad_group_neg_targetMedium

Add Sponsored Brands ad-group-level negative targets. CamelCase expression types (asinSameAs / asinBrandSameAs); body uses `expressions` (plural, NOT `expression`).

propose_update_sb_ad_group_neg_targetLow

Pause, un-pause, or archive existing Sponsored Brands ad-group negative targets. Lowercase state values; each item must include targetId and adGroupId.

propose_archive_sp_campaignHIGH

Archive Sponsored Products campaigns, up to 1000 per call. Permanent: an archived campaign can never be re-enabled.

propose_archive_sp_campaign_neg_keywordHIGH

Archive campaign-level negative keywords. Permanent.

propose_archive_sp_campaign_neg_targetHIGH

Archive campaign-level negative targets. Permanent.

propose_archive_sp_ad_groupHIGH

Archive Sponsored Products ad groups. Permanent.

propose_archive_sp_keywordHIGH

Archive Sponsored Products keywords. Permanent.

propose_archive_sp_ad_group_neg_keywordHIGH

Archive ad-group-level negative keywords. Permanent.

propose_archive_sp_targetHIGH

Archive Sponsored Products product and category targets. Permanent.

propose_archive_sp_ad_group_neg_targetHIGH

Archive ad-group-level negative targets. Permanent.

propose_archive_sp_product_adHIGH

Archive Sponsored Products product ads. Permanent.

propose_archive_sb_campaignHIGH

Archive Sponsored Brands campaigns, up to 10 per call. Permanent.

propose_update_sd_campaignMedium

Update Sponsored Display campaigns.

propose_update_sd_ad_groupConditional

Update Sponsored Display ad groups.

propose_update_sd_product_adConditional

Update Sponsored Display product ads.

propose_update_sd_targetConditional

Update Sponsored Display targets.

get_sp_bid_recommendationsRead-only

Get Amazon's suggested bids (no writes).

propose_create_relevancy_datasetHIGH

Create a Keyword Relevancy dataset (account:write — Titan Tools datasets, NOT Amazon Ads). No dry-run, no delete — permanent. Returns numeric datasetId.

propose_add_relevancy_dataset_asinsMedium

Add 1-10 competitor ASINs to a Keyword Relevancy dataset (by dataSetId).

propose_remove_relevancy_dataset_asinsMedium

Remove 1-10 ASINs from a Keyword Relevancy dataset (by dataSetId).

propose_set_product_cogsHIGH

Set cost of goods for 1-500 SKUs. It is a Titan product-record write, NOT Amazon Ads, with no dry-run. The periods[] you send REPLACE the SKU's entire cost history on every call, so a single period leaves only that period and erases everything before it. To append instead, send two or more periods (the prior cost with startDate null, then the new dated period; Titan ends each period the day before the next). The earliest period you send always starts from the beginning of time, whatever its date, so periods that are all dated still erase the history before the earliest one. Read the SKU with get_product_cogs first and send back every period you want to keep, since a period left out is removed. Not reversible: a cost history overwritten without that read cannot be restored. Drives CM1/CM2/CM3. isAllMarketplace true writes every marketplace (salesChannel must be omitted); false requires salesChannel. type PERIOD takes 1..N {element, amount, units ≥ 1}; type CONSTANT takes exactly one {amount}. Element names are not validated: an unknown element is silently created and zeroes the store's real cost lines, so reuse the names get_product_cogs lists. Partial success: results[] comes back in request order and an all-failed batch still returns HTTP 200.

propose_save_compass_suppliersMedium

Create or update 1-200 Compass suppliers. A Titan Tools write, not Amazon, with no dry-run. The whole batch is refused if any row is invalid. Editing a supplier also changes the terms on every SKU linked to it. Compass recalculates nothing until you open it and accept the recompute prompt.

propose_delete_compass_supplierHIGH

Delete one Compass supplier. No dry-run and no restore: creating it again gives it a new id. SKUs linked to it are not unlinked; they keep its last terms until you relink them.

propose_update_compass_product_configsHIGH

Change the supplier link, when freight is paid, or the Demand Plan settings for 1-200 SKUs. No dry-run. Each SKU reports its own outcome, including edits that lost a race with another change. A SKU can be relinked to another supplier but never unlinked, and its config cannot be deleted. Compass recalculates nothing until you open it and accept the recompute prompt.

propose_update_listingHIGH

Update one SKU's name, bullet points, description, generic keyword, item highlight and price (basePrice, plus optional salePrice with saleStartAt + saleEndAt) on the live Amazon listing. FULL REPLACE per field — each field you send replaces that whole attribute (send the complete value; for bulletPoints send the full list to keep, a shorter one drops the rest), so read the SKU with get_product_listing first. The item highlight is up to 125 characters and Amazon shows it only when the title is under 75 characters. salePrice requires BOTH dates. UNVERIFIABLE: there is no live read-back, so it reports Amazon's submission result — ACCEPTED (queued, not yet confirmed live; do not resubmit, confirm in Seller Central) or INVALID (refused, with issue messages). Marketplace is the active seller's; Amazon judges it (no client-side allowlist).

Key Metrics

ACoS(Advertising Cost of Sales)

Ad spend / Ad sales— Lower is better

ROAS(Return on Ad Spend)

Ad sales / Ad spend— Higher is better

TACoS(Total ACoS)

Ad spend / Total sales— Shows organic vs paid balance

CM1(Contribution Margin 1)

Revenue - COGS - Refunds

CM2(Contribution Margin 2)

CM1 - Amazon fees— Advertising breakeven references CM2%, not CM1%

CM3(Contribution Margin 3)

CM2 - PPC spend

CVR(Conversion Rate)

Orders / Sessions

Unit Session %(Unit Session Percentage)

Units / Sessions