Build your Amazon product, not the SP-API pipeline
Your customers pay for your product, not your pipeline. Nova runs the Amazon data layer for every seller account. You query clean tables.
SELECT purchase_at_local, marketplace_name, sku, quantity, product_sales
FROM orders
WHERE purchase_day = today()
ORDER BY purchase_at_utc DESC
LIMIT 5;| purchase_at_local | marketplace_name | sku | quantity | product_sales |
|---|---|---|---|---|
| 14:32:08 | Amazon.com | MUG-12OZ-BLK | 2 | 39.98 |
| 14:31:51 | Amazon.de | BOTTLE-750-SAGE | 1 | 24.90 |
| 14:31:22 | Amazon.co.uk | MUG-12OZ-WHT | 1 | 17.99 |
| 14:30:47 | Amazon.com | LID-SET-4 | 3 | 26.97 |
| 14:30:05 | Amazon.ca | BOTTLE-500-NAVY | 1 | 29.99 |
MySQL wire protocol. Your stack already speaks it.
What are you building?
Pick your product. See the tables you read and the seller API trap you skip.
- product_metrics
- orders
- listing_health
Price against real margin, with every fee already mapped to the SKU.
SELECT sku, contribution_margin, amazon_fees, referral_fee, cost_of_goods
FROM product_metrics WHERE metric_date = yesterday();Trap you skip: Amazon renames fees, and splits the same fee across two APIs. See every trap
- advertising
- advertising_campaigns
- advertising_targets
- advertising_search_terms
- advertising_placements
- advertising_negative_targets
- advertising_impression_share
- product_metrics
Read spend down to the search term and placement, next to the margin it drives.
SELECT search_term, SUM(spend) AS spend
FROM advertising_search_terms
GROUP BY search_term ORDER BY spend DESC LIMIT 10;Trap you skip: The legacy ads API counts spend twice when two brands share one account. See every trap
- inventory
- inbound_shipments
- orders
Forecast from sellable stock, inbound units and today's orders.
SELECT sku, stock_region, fba_sellable, awd_onhand
FROM inventory WHERE snapshot_date = today();Trap you skip: Pan-EU stock appears once per country. Sum it and you count five times too much. See every trap
- product_metrics
- orders
- account_costs
- sku_costs
- cost_dictionary
Show profit by SKU and day, with every cost in a named category.
SELECT metric_date, sku, product_sales, net_profit
FROM product_metrics WHERE metric_date >= today() - 30;Trap you skip: The same fee arrives tax included in one API and net plus VAT in the other. See every trap
- sqp_weekly
- sqp_monthly
- listing_health
Track search volume and purchases per query, and which listings can't be bought.
SELECT search_query, search_volume, your_purchases
FROM sqp_weekly ORDER BY search_volume DESC LIMIT 10;Trap you skip: Listings reports arrive in the account's language, not the marketplace's. See every trap
- Nova MCP
- or the tables above
Give your agent 43 tools on the same data, in Claude, ChatGPT or Gemini.
AskWhich SKUs lost margin this week, and why?
Trap you skip: An agent reading raw reports answers with the wrong day's numbers, because of time zones. See every trap
How it works
Your customers connect once
Each seller authorizes Nova on Amazon.
Nova runs the data layer
Nova ingests Amazon's reports and reconciles them. Orders stream into the tables about 20 seconds after the sale.
You query their tables
You see only your organization's rows. Seller accounts your customers connect later are included automatically.
The data layer
Maintained, reconciled tables for every account
Nova checks the data against other Amazon sources every day, so your product reads numbers your customers can trust.
- 81
- report feeds merged
- 23
- Amazon marketplaces
- 23
- months checked again daily
- 99.9%
- P&L accuracy against settlements
- seller_partner_idvarchar
- marketplace_idvarchar
- skuvarchar
- metric_datedate
- unitsbigint
- product_salesfloat
- net_profitfloat
- purchase_at_utc
- purchase_at_local
- purchase_day
- marketplace_name
- sku
- quantity
- product_sales
- campaign_idbigint
- child_asinvarchar
- metric_datedate
- spendfloat
- salesfloat
- stock_regionvarchar
- skuvarchar
- snapshot_datedate
- fba_sellablebigint
- awd_onhandbigint
- marketplace_idvarchar
- skuvarchar
- is_buyablebool
- offers_buy_box_lostbool
- parent_asinvarchar
- search_queryvarchar
- search_volumebigint
- your_purchasesbigint
- cost_keyvarchar
- export_namevarchar
- cost_levelvarchar
- shipment_idvarchar
- skuvarchar
- shipment_statusvarchar
- quantity_receivedbigint
- parent_asinvarchar
- search_queryvarchar
- search_volumebigint
- your_purchasesbigint
- campaign_idbigint
- metric_datedate
- spendfloat
- campaign_idbigint
- keyword_idbigint
- search_termvarchar
- spendfloat
- campaign_idbigint
- placementvarchar
- metric_datedate
- spendfloat
- campaign_idbigint
- target_idbigint
- targetingvarchar
- spendfloat
- campaign_idbigint
- ad_group_idbigint
- negative_idbigint
- keyword_textvarchar
- keywordvarchar
- snapshot_datedate
- search_term_impression_sharefloat
- child_asinvarchar
- metric_datedate
- product_salesfloat
- net_profitfloat
- child_asinvarchar
- snapshot_datedate
- vendor_sellable_unitsbigint
- child_asinvarchar
- week_start_datedate
- mean_forecast_unitsbigint
- purchase_order_numbervarchar
- child_asinvarchar
- ordered_unitsbigint
- received_unitsbigint
- invoice_idvarchar
- invoice_statusvarchar
- invoice_amountdecimal
- payment_idvarchar
- invoice_idvarchar
- net_amount_paiddecimal
Build it, or build on Nova
| Build it | Nova Data Share | |
|---|---|---|
| Time to first query | After the pipeline works | Within 24 hours of connecting |
| Amazon format and API changes | Your team, every quarter | Nova |
| Financial reconciliation | Fee names, tax, revisions | 139 money movements mapped |
| Order freshness | Hourly report schedule | About 20 seconds |
| New marketplaces | New parsers | 23 covered |