What is an Amazon data warehouse?
An Amazon data warehouse is a store that keeps your seller and advertising data in one queryable place. Your tools read from it directly instead of downloading a fresh report every time someone asks a question. [cs]
Commerce Spine is a managed version of that. It holds normalized Seller Central and Ads data and exposes it through a read-only GraphQL API built for agents, scripts and automations. You bring the agent: any agent or script that sends a bearer token can query it. [cs]
The first sync backfills 30 days, and history is kept from that day forward. One query can cover up to 90 days on a paid plan and 30 days on the free plan. You can read more about how Commerce Spine connects to Amazon before going deeper here. [cs] [cs-site]
Should you build your own Amazon data warehouse?
You can, but the Amazon side is the long part. Seller data comes through the Reports API, where, according to Amazon's Reports API documentation, you request a report, verify that report processing is complete and then retrieve the document. You can also schedule report requests or fetch reports Amazon generates on its own. [amazon]
Each of those operations needs your application to hold at least one approved role, such as Amazon Fulfillment or Finance and Accounting. The same documentation warns that Amazon periodically adds new fields and field values to reports, and that the format of document identifiers may change. Any parser you write has to keep up with that. [amazon]
So a home-built warehouse means owning the role approval, the report jobs, the storage and every parser fix. With Commerce Spine, access to your account runs through Amazon's own authorization flow, which you can revoke there at any time. [amazon] [cs-site]
How does an agent find out what is in the warehouse?
It asks the warehouse itself, through two discovery queries. amazonAccounts lists every Amazon account inside your organization and user scope, with fields such as marketplace, currency, and whether the Ads API and Seller Central are connected. The id it returns is the accountId every data query uses. [cs]
dataCatalog lists the available datasets and their fields. For each field it says whether it is filterable, groupable, sortable or aggregatable, so an agent knows which filters and sorts will work before it writes a query. [cs]
The scope is enforced. A request is limited to the intersection of what your organization and your user may see. Ask for an account outside it and you get a FORBIDDEN_ACCOUNT_SCOPE error back. The full list of datasets sits under the data Commerce Spine covers. [cs]
What is a data contract, and how do you read one?
A data contract is the fixed description of one dataset: its fields, where it comes from and which columns hold the account and the date. In Commerce Spine you read it with dataAsset, passing the entity name, for example accountPerformance, inventory or listing. [cs]
The contract returns the asset id, entity, table, dataset and description, whether it is queryable, the accountField and dateField, and every field with its type. For listings, the catalog id is listing.amazon_listing and the table is sellercentral_alllistings_report, which is Amazon's All Listings Report. [cs]
Reading the contract first pays off on larger datasets. The listing entity carries 28 base fields, from sku and asin to price, quantity, status and fulfillmentChannel. The inventory entity has 12 base fields plus 11 nested objects drawn from the Manage FBA and Restock reports. The guide to Amazon inventory reports and their fields walks through those nests. [cs]
How fresh is the data in an Amazon data warehouse?
It is as fresh as the last successful sync, and you can check that date per dataset. dataFreshness returns the latest available report date across all assets, or for one asset when you pass its name. Each result names the asset, its dateField and its latestReportDate. [cs]
The rules differ per dataset. Inventory freshness is the latest last_successful_run_date across the three Seller Central inventory report modules. Listing freshness uses the All Listings Report only. Both inventory and listing are snapshots: the engine pins the latest report date for each account, so these two queries take no date range. [cs]
Commerce Spine does not promise a fixed sync time in its API reference, and an agent should not assume one. It should read latestReportDate and say which day its answer covers. [cs]
What should an agent check before it trusts a number?
An agent can run four checks before it reports a number. Confirm the account with amazonAccounts, read the dataset's contract with dataAsset, read the latest date with dataFreshness, and only then run the query. Each step uses the same POST to /graphql with the agent token. [cs]
Every data query also returns a queryInfo block. It carries the requestId, the effectiveAccountIds actually used, the dateFrom and dateTo, the number of rows returned and when the result was generated. An agent that repeats those values next to its answer makes the number easy to audit. [cs]
Errors are named so the agent can react. UNAUTHENTICATED means a missing or invalid token. DATE_RANGE_TOO_LARGE means the range is longer than 90 days, so it splits the period. For a wider walkthrough of wiring this into a harness, see connecting Amazon data to your AI agent. [cs]
How much does a managed Amazon data warehouse cost?
Commerce Spine is free for one connected account and $49 a month for up to 3 connected accounts. Portfolio is $149 a month for up to 12, and larger setups talk to the team. Pricing is flat per connected account. [cs-site]
The free plan has printed caps: 30 days of history, 20 requests an hour, 40 a day and a 30-day window per query. Paid plans run at 60 requests a minute and 1,000 a day with the 90-day window. The caps apply per organization, so extra tokens do not add quota. [cs-site]
If you want to see how the same data turns into recurring reports, read how Amazon reporting data becomes queryable. [cs]
Frequently asked questions
Is Commerce Spine an Amazon data warehouse?
Yes. Commerce Spine keeps normalized Seller Central and Ads data in a managed warehouse and exposes it through a read-only GraphQL API. Your own agent or script queries it with a bearer token.
How do I know when the data was last updated?
Run dataFreshness. Without an asset name it returns the latest report date for every asset; with a name such as inventory or listing it returns that one. Inventory uses the latest successful run across three inventory report modules, and listing uses the All Listings Report only.
Can my agent change anything in Amazon through the warehouse?
No. The API is read-only, so your agent can list accounts, read contracts, check freshness and query performance, inventory and listing data, but it cannot edit listings, stock or campaigns. Any change still happens in Amazon itself or through your own tools and code.
How much history does the warehouse keep?
The first sync backfills 30 days for every account, and data is kept from that day forward. A single query on a paid plan can cover up to 90 days; on the free plan the window is 30 days. Longer periods are split into several queries, each within your plan's window.
Sources
Want more of this in your Google results? Add Commerce Spine as a preferred source.