What this report contains
This is Amazon's catalog record for the ASINs you sell, as it stands on the day you ask. It is not a Reports API file: it comes from the Catalog Items API, one item resource per ASIN, and that resource carries several sections at once, so the file lands as six tables joined on asin (and reported_marketplace_id).
The report's own table, the master spine, is one row per ASIN per marketplace. It flattens the identity sections: product_type; the external identifiers ean, upc, gtin and isbn (several of one type are comma-joined into a cell); the VARIATION relationship as parent_asins, relationship_type, variation_theme and variation_attributes; the browse classification as a leaf (classification_id, classification) plus the parent chain walked root to leaf in classification_path; and the two sales-rank families, sales_rank within sales_rank_title and display_group_rank within display_group_rank_group. Each rank is the headline rank by construction: the lists arrived with at most one entry per family, and only the first is kept.
Five companion tables hang off it. Summaries is again one row per ASIN per marketplace with the descriptive fields: brand, item_name, manufacturer, model_number, part_number, color, size, style, the summary's own browse_classification, website_display_group, package_quantity and four flags. Dimensions carries up to two scopes, item_ and package_, each with height, length, width and weight as a float with its unit in the column beside it; an ASIN whose catalog entry has no dimensions still gets a row, with every measurement null. Images is one row per rendition: variant (MAIN and PT01 to PT08 observed), link, height, width, several sizes per variant. Attributes explodes the product-type attribute blob one row per element, in the same format as the listings attributes table: attribute_name, attribute_index, language_tag, value, value_json. Vendor details (brand_code, product_group, product_category, replenishment_category and so on) is populated only for vendor accounts and header-only for everyone else.
Everything is Amazon's current catalog state and mutates in place. There is no date range on any row, only the snapshot date the pull was made.
How to get it
There is no report type for this data in the Reports API or in Data Kiosk. It comes from the Selling Partner API's Catalog Items API (v2022-04-01) through the synchronous searchCatalogItems operation. You pass up to twenty identifiers per call and the marketplace, and ask for the includedData sections you want. Amazon's enum for the operation is attributes, classifications, dimensions, identifiers, images, productTypes, relationships, salesRanks, summaries and vendorDetails; ask for nothing and you get summaries alone. Each call answers the same item resource as the per-ASIN getCatalogItem, so one batch loop replaces thousands of single calls.
The trap is that the catalog has no dump operation. It is Amazon's catalog, not your account's, so nothing will hand you "all my items"; something has to say which ASINs to ask about. The usual list is the account's own listed ASINs, which is why the file covers your catalogue — but the list is an input to the call, so coverage is only ever as complete and as current as whatever list you feed it.
The second trap is vendorDetails. A seller credential that requests it gets an InvalidInput error reading "FORBIDDEN, requires vendor access", and the whole call fails with it. Request that section only when the account is a vendor. Vendors, for their part, answer every other section too.
Each section in the response is a list with one element per marketplace, and every element names its marketplaceId. One search call covers one store — Amazon's reference gives marketplaceIds on searchCatalogItems a Max count : 1 — so covering several stores means one call per store, and each row is stamped with the marketplace its call requested. Widening a pull to several marketplaces therefore means more calls, and more rows, not dropped ones.
Whether any Seller Central page offers an equivalent export is not something the evidence here establishes, and no Amazon help page describing one turned up. The API is the only path this page can vouch for.
Sample rows
Illustrative values, not data from a real account. Shown to give the shape of the file.
| asin | reported_marketplace_id | product_type | upc | parent_asins | relationship_type | variation_theme | classification | sales_rank_title | sales_rank |
|---|---|---|---|---|---|---|---|---|---|
| B0EXAMPLE01 | ATVPDKIKX0DER | DRINKING_CUP | 012345678905 | B0EXAMPLE00 | VARIATION | COLOR/SIZE | Tumblers & Water Glasses | Kitchen & Dining | 1450 |
| B0EXAMPLE02 | ATVPDKIKX0DER | DRINKING_CUP | 012345678912 | B0EXAMPLE00 | VARIATION | COLOR/SIZE | Tumblers & Water Glasses | Kitchen & Dining | 3820 |
| B0EXAMPLE00 | ATVPDKIKX0DER | DRINKING_CUP | COLOR/SIZE | Tumblers & Water Glasses | |||||
| B0EXAMPLE03 | ATVPDKIKX0DER | WATER_BOTTLE | 012345678929,012345678936 | Sports Water Bottles | Sports & Outdoors | 26400 |
Field reference
Main table
| Column | Type | Description |
|---|---|---|
asin | string | The ASIN this row describes. Together with reported_marketplace_id it is the join key from this main table to all five companion tables (summaries, dimensions, images, attributes, vendor details). |
reported_marketplace_id | string | The marketplace whose catalog view this row reflects, as Amazon named it in the section element. On every validated row it matched the marketplace that was requested. A pull covering several marketplaces lands one row per marketplace for the same ASIN, not one merged row. |
product_type | string | The Amazon product type assigned to the ASIN in this marketplace, from the productTypes section. It decides which attribute names the attributes table can carry for the ASIN. |
ean | string | The EAN Amazon holds for the ASIN. Where the catalog holds several identifiers of the same type they are comma-joined into this one cell, so do not assume a single value. |
upc | string | The UPC Amazon holds for the ASIN, comma-joined when there are several. |
gtin | string | The GTIN Amazon holds for the ASIN, comma-joined when there are several. |
isbn | string | The ISBN Amazon holds for the ASIN, comma-joined when there are several. Empty on anything that is not a book. |
parent_asins | string | The parent ASIN of the variation family this ASIN belongs to, taken from the VARIATION relationship. Amazon's field is a list of ASINs, so a cell can hold more than one. Empty for a standalone ASIN and for a parent itself; grouping children on it rebuilds the family. |
relationship_type | string | The relationship the parent came from. The spine flattens the VARIATION relationship, so this names that relationship on rows that have a parent and is empty where there is none. |
variation_theme | string | The variation theme of the family, meaning the axis or axes the children differ on. |
variation_attributes | string | The attribute names the family's variation theme varies on, as Amazon lists them in the relationship. |
classification_id | string | The browse node id of the leaf classification Amazon has placed the ASIN in for this marketplace. |
classification | string | The display name of that leaf browse node. |
classification_path | string | The browse node's parent chain walked from the root down to the leaf, so the full breadcrumb Amazon places the ASIN under is in one cell. Ends at classification. |
sales_rank_classification_id | string | The browse node id of the classification the sales_rank is measured within. |
sales_rank_title | string | The display name of the classification the sales_rank is measured within. |
sales_rank | int64 | The ASIN's headline classification rank in this marketplace. Rank lists arrived with at most one entry per family on every validated row and only the first is kept, so this is the headline rank by construction and any secondary ranks are not in the file. Snapshot value; ranks move daily. |
display_group_rank_group | string | The website display group the display_group_rank is measured within. |
display_group_rank_title | string | The display name of that website display group. |
display_group_rank | int64 | The ASIN's headline rank within its website display group, the second of the two sales-rank families. Same rule as sales_rank: first entry only, snapshot value. |
summaries
| Column | Type | Description |
|---|---|---|
asin | string | Join key back to the main table, together with reported_marketplace_id. This table is also one row per ASIN per marketplace, so the join is one-to-one. |
reported_marketplace_id | string | The marketplace this summary row reflects. Join on it together with asin. |
brand | string | The brand name Amazon shows for the ASIN in this marketplace. |
item_name | string | The listing title as the catalog holds it. Changes in place, so a difference between two snapshots is a real title change. |
manufacturer | string | The manufacturer name in the catalog summary. |
model_number | string | The manufacturer's model number for the item. |
part_number | string | The manufacturer's part number for the item. |
color | string | The colour attribute as it appears in the summary. Populated only where the product type carries one. |
size | string | The size attribute as it appears in the summary. Populated only where the product type carries one. |
style | string | The style attribute as it appears in the summary. Populated only where the product type carries one. |
item_classification | string | Amazon's summary-level classification of the item. The reference's enum is BASE_PRODUCT (a product that can be bought directly, standalone or as a variation child), VARIATION_PARENT (the parent that groups children into a variation family), PRODUCT_BUNDLE (a parent representing a bundle of items) and OTHER. |
browse_classification | string | The browse node named in the summary section. The master table's classification comes from the classification section and carries the full path in classification_path; this one is the summary's own single node and has no path beside it. |
browse_classification_id | string | The browse node id for browse_classification. |
website_display_group | string | The code of the website display group the summary places the ASIN in. |
website_display_group_name | string | The display name for website_display_group. |
package_quantity | int64 | How many units one sellable package of this ASIN contains, per the catalog. |
adult_product | bool | Whether Amazon flags the item as an adult product. |
autographed | bool | Whether Amazon flags the item as autographed. |
memorabilia | bool | Whether Amazon flags the item as memorabilia. |
trade_in_eligible | bool | Whether Amazon flags the item as eligible for its trade-in program. |
dimensions
| Column | Type | Description |
|---|---|---|
asin | string | Join key back to the main table, together with reported_marketplace_id. There is one row here per ASIN per marketplace even when the catalog holds no dimensions at all; that case lands as a row with every measurement null, not as a missing row. |
reported_marketplace_id | string | The marketplace this dimensions row reflects. |
item_height | float64 | Height of the item itself, the item scope, as a physical measurement. Read it with item_height_unit beside it; values are not normalised to one unit. |
item_height_unit | string | The unit item_height is expressed in. |
item_length | float64 | Length of the item itself. Read with item_length_unit. |
item_length_unit | string | The unit item_length is expressed in. |
item_width | float64 | Width of the item itself. Read with item_width_unit. |
item_width_unit | string | The unit item_width is expressed in. |
item_weight | float64 | Weight of the item itself. Read with item_weight_unit. |
item_weight_unit | string | The unit item_weight is expressed in. |
package_height | float64 | Height of the item as packaged, the package scope. The package scope was present on 40 of 60 validated seller items and the item scope on 23, so expect one, both or neither to be filled. |
package_height_unit | string | The unit package_height is expressed in. |
package_length | float64 | Length of the item as packaged. Read with package_length_unit. |
package_length_unit | string | The unit package_length is expressed in. |
package_width | float64 | Width of the item as packaged. Read with package_width_unit. |
package_width_unit | string | The unit package_width is expressed in. |
package_weight | float64 | Weight of the item as packaged. Read with package_weight_unit. |
package_weight_unit | string | The unit package_weight is expressed in. |
images
| Column | Type | Description |
|---|---|---|
asin | string | Join key back to the main table, together with reported_marketplace_id. The grain here is one image rendition rather than one ASIN, so a single ASIN has many rows. |
reported_marketplace_id | string | The marketplace this image rendition is served for. |
variant | string | Which image slot the rendition belongs to. MAIN plus PT01 through PT08 were observed. Several rows share a variant because Amazon serves several sizes of each image. |
link | string | The URL of this rendition. |
height | int64 | The rendition's height in pixels. Together with width this is how you pick one size per variant. |
width | int64 | The rendition's width in pixels. |
attributes
| Column | Type | Description |
|---|---|---|
asin | string | Join key back to the main table, together with reported_marketplace_id. The grain here is one element of the product-type attribute blob, exploded in the same format as the listings attributes table, so a single ASIN has many rows. |
attribute_name | string | The attribute's key in the product-type attribute blob. Which keys appear depends on the ASIN's product_type. |
attribute_index | int64 | The element's position within a multi-valued attribute, so an attribute with several values produces several rows distinguished by this. |
reported_marketplace_id | string | The marketplace this attribute value applies to. |
language_tag | string | The language tag Amazon attaches to the element, where the attribute is language-specific. |
value | string | The element's value flattened to text. |
value_json | string | The element kept as JSON. Amazon documents the attributes section only as a JSON object keyed by attribute name, and nothing on its side says how an element divides between the flattened value and this column, so read the pair together rather than either alone. |
vendor_details
| Column | Type | Description |
|---|---|---|
asin | string | Join key back to the main table, together with reported_marketplace_id. Rows exist here only for vendor accounts; on a seller account the table is header-only. |
reported_marketplace_id | string | The marketplace these vendor details apply to. |
brand_code | string | Amazon's vendor-side brand code for the item. |
manufacturer_code | string | Amazon's vendor-side manufacturer code for the item. |
manufacturer_code_parent | string | The parent of manufacturer_code in Amazon's vendor manufacturer hierarchy. |
product_group | string | The vendor product group Amazon files the item under. |
product_category_id | string | The id of the vendor product category. |
product_category | string | The display name of the vendor product category. |
product_subcategory_id | string | The id of the vendor product subcategory. |
product_subcategory | string | The display name of the vendor product subcategory. |
replenishment_category | string | Amazon's vendor replenishment category for the item. |
Use cases
Auditing variation families. Group the spine on parent_asins and compare variation_theme and variation_attributes across the children. A child whose theme differs from its siblings, or a child with no parent where you expected one, is a family Amazon has split or a listing that has come loose from it.
Building a sales-rank history you can trust. sales_rank and display_group_rank are today's headline ranks and nothing more; there is no history in the file. Keeping the daily snapshot and stacking sales_rank by asin over time is how you get a rank trend, and sales_rank_title tells you which node the rank is measured in so a node change does not read as a rank collapse.
Checking where Amazon actually filed your product. classification_path is the full browse breadcrumb Amazon places the ASIN under, root to leaf. Compare it against where you meant the product to sit, and compare the spine's classification against the summary's browse_classification when the two disagree.
Feeding dimensions into fee and shipping estimates. package_height, package_length, package_width and package_weight, each with its unit column, are the packaged measurements Amazon holds. Check the item_* scope as well, and treat an all-null dimensions row as "Amazon has none" rather than a missing join.
Image QA across the catalog. Count distinct variant values per asin in the images table to find ASINs with no MAIN image or with fewer secondary slots filled than their siblings, and pick one rendition per variant by height and width before you do so.
Reconciling identifiers with your own systems. upc, ean, gtin and isbn are what Amazon holds against the ASIN. Split the comma-joined values before matching them to an ERP.
Vendor category roll-ups. For a vendor account, product_group, product_category, product_subcategory and replenishment_category give Amazon's own retail hierarchy, which is what Vendor Central reporting is usually cut by.
Limitations and gotchas
It is a snapshot, not a history. Ranks move daily, titles and images change, and the record mutates in place. The rows carry no date range, only a snapshot date. If you did not keep yesterday's pull, yesterday's rank is gone.
Only the headline rank is kept. Rank lists arrived with at most one entry per family on every validated row, and only the first is kept. If Amazon returns a second rank in a family, it is not in the file.
Coverage is only the ASINs the call names. The report asks about the ASINs your account lists, because that is the list supplied to it. An ASIN missing from that list is absent from the file, and competitors' ASINs are not in it at all.
vendor_details is access-gated, not sparse. For a seller account the table is header-only, and requesting the section fails the call outright. Do not read an empty vendor details table as missing data.
Dimensions come in two scopes with units beside them. package_ was present on 40 of 60 validated seller items and item_ on 23; 20 of 60 had no dimensions at all and land as an all-null row. The unit columns are not normalised, so never compare or sum measurements without converting on the unit column first.
Images have several rows per variant. Amazon serves several sizes of each image, so counting rows in the images table overstates the number of images. Pick a size by height and width first.
Identifiers are comma-joined. A cell in upc, ean, gtin or isbn can hold more than one value.
Rows are per marketplace. Every table carries reported_marketplace_id, and a pull covering several marketplaces — one call each — produces one row per marketplace for the same ASIN. Join the companion tables to the spine on both columns, or an image list will multiply.
Attributes follow the product type. The keys in attribute_name are whatever the ASIN's product_type defines, so the set differs from one ASIN to the next; there is no fixed column per attribute.
FAQ
No. Catalog data comes from the Catalog Items API, whose searchCatalogItems operation answers live for up to twenty identifiers per call. There is no createReport flow and no Data Kiosk dataset for it.
Because it is gated on account type. Sellers who request the vendorDetails section get an InvalidInput error saying it requires vendor access, so the section is requested only for vendor accounts and the table is header-only for everyone else.
The grain of that table is one row per image rendition. Each image slot, MAIN and PT01 through PT08, is served in several sizes, and every size is a row. Pick one per slot using the height and width columns.
Amazon's catalog holds no dimensions for that ASIN in that marketplace. The row is kept so you can tell the difference between no dimensions and no catalog entry; a third of the validated items had no dimensions at all.
Only by keeping the snapshots yourself. Each pull carries the headline rank as of that day and no date range, so a daily pull stacked over time is the history; the file alone has none.
The endpoint answers Amazon's catalog rather than your account's, so it needs a list of ASINs to ask about. The list supplied is the ASINs your account lists, which is why the file covers your catalogue and not a competitor's.
Sources
Every researched claim on this page, and the Amazon or Walmart page it came from.
- marketplaces — developer-docs.amazon.com/catalog-items-api — 'Roles for the Catalog Items API v2022-04-01 … searchCatalogItems … Regions NA, EU, FE'. The same page gives Availability as 'Sellers and Vendors'.
- marketplaces — developer-docs.amazon.com/sp-api-endpoints — the three selling regions name every store between them: North America (Canada, US, Mexico, Amazon Brazil), Europe (Ireland, Spain, UK, France, Belgium, Netherlands, Germany, Italy, Sweden, South Africa, Poland, Saudi Arabia, Egypt, Turkey, United Arab Emirates, Amazon India) and Far East (Singapore, Australia, Amazon Japan) — the same 23 stores _taxonomy.yaml lists, which is why NA + EU + FE reads as `all`. The claim is region-level and nothing more: Amazon publishes no per-store availability list for this operation, and only US pulls were validated (60 seller items, 20 vendor items), so no store outside the US is evidence-tested.
- latency: no Amazon statement exists to cite. Checked — developer-docs.amazon.com/catalog-items-api, developer-docs.amazon.com/catalog-items-api-v2022-04-01-reference and developer-docs.amazon.com/catalog-items-api-v2022-04-01-use-case-guide: none of the three publishes a freshness, update-frequency or refresh-interval statement for catalog data. What the `latency:` field records instead — a synchronous endpoint answering live, and coverage limited to the identifiers a call names — is observed in the production files rather than documented, and how far Amazon's catalog runs behind the retail site on ranks and images stays unestablished.
- how-to-get-it (console path): unresolved, so the page stays hedged. No Amazon help page was found that exports Amazon's own catalog record for an ASIN — browse path, ranks, image renditions, the per-marketplace view. The nearest candidate, 'Download Category Listings report' ( — sellercentral.amazon.com/GFYSJC946YKTD68L), is named for your listings rather than Amazon's catalog, and the Seller Central help hub is behind a seller login, so the page could not be read unauthenticated and its contents are not confirmed here. A help page that cannot be read is not proof that no console export exists.
- seller_type — developer-docs.amazon.com/catalog-items-api — the version table gives 'Availability: Sellers and Vendors', and the note reads 'Vendors can retrieve additional vendor-specific details'. The reference adds, on ItemVendorDetails, 'Vendor details are only available to vendors', which corroborates the vendor gate observed on that section.
- cadence — developer-docs.amazon.com/catalog-items-api-v2022-04-01-reference — corroboration only; the value follows the production files. Both operations are synchronous GETs under a requests-per-second usage plan (GET /catalog/2022-04-01/items, GET /catalog/2022-04-01/items/{asin}); there is no createReport flow, no schedule and no publication statement anywhere in the reference, which is what `snapshot` records.
- how-to-get-it — developer-docs.amazon.com/catalog-items-api-v2022-04-01-reference — the IncludedData enum for searchCatalogItems is exactly `attributes`, `classifications`, `dimensions`, `identifiers`, `images`, `productTypes`, `relationships`, `salesRanks`, `summaries`, `vendorDetails`, and the parameter table defaults includedData to `summaries`. The same table gives identifiers 'Max count : 20', which matches the twenty-per-call the page already states.
- fields — item_classification — developer-docs.amazon.com/catalog-items-api-v2022-04-01-reference — the ItemClassification enum is BASE_PRODUCT ('a product that can be directly purchased'), VARIATION_PARENT ('a parent catalog item that groups child items into a variation family'), PRODUCT_BUNDLE ('a parent catalog item that represents a bundle of items') and OTHER.
- fields — parent_asins and variation_attributes — developer-docs.amazon.com/catalog-items-api-v2022-04-01-reference — ItemRelationship.parentAsins is '<string> array', 'ASINs of the related items that are parents of this item', and ItemVariationTheme.attributes is '<string> array', 'Names of the Amazon catalog item attributes that are associated with the variation theme', beside theme with the example 'COLOR_NAME/STYLE_NAME'. Both can hold several values; the reference says nothing about how they are flattened into a cell. The descriptions now say a cell can hold more than one and name no separator, which is as far as the document goes — the comma-joining stated for `ean`, `upc`, `gtin` and `isbn` was observed on those columns only and was not extended to these two.
- fields — value and value_json — developer-docs.amazon.com/catalog-items-api-v2022-04-01-reference — there is no such split on Amazon's side to check against. `attributes` is documented only as 'A JSON object containing structured item attribute data that is keyed by attribute name', conforming to the product type definition from the Product Type Definitions API. The text/JSON pair has no counterpart on Amazon's side, so how one element divides between the two columns is undocumented; the field descriptions say so rather than guess.
- conflict — developer-docs.amazon.com/catalog-items-api-v2022-04-01-reference — on searchCatalogItems, 'marketplaceIds required … Max count : 1'; on getCatalogItem the same parameter carries no max count. Re-checked, still true. The evidence from the production files is unchanged and the page follows it — rows are per marketplace, and one search call covers one marketplace — so the two are reconcilable rather than contradictory. The prose now states the `Max count : 1` and says one call covers one store, so 'widening a pull' can no longer be read as a single call spanning several stores.
- upstream.report_type — developer-docs.amazon.com/searchcatalogitems — Amazon's own name for this data is the operation, not a Reports API report type: the reference page is titled `searchCatalogItems`, and its OpenAPI definition gives `"operationId": "searchCatalogItems"` on `GET /catalog/2022-04-01/items` under `"title": "Catalog Items v2022-04-01"`, which is the name the page already states throughout.