Amazon SP-API Product Feed Specification
Amazon Selling Partner API (SP-API) uses XML-based feeds for bulk product data management. Sellers submit feeds for product listings, pricing, inventory, and images. Each feed type has a specific XML schema that must be followed exactly -- malformed XML or invalid values cause the entire feed or individual records to fail.
Feed Types
Amazon SP-API organizes product data into separate feed types. Each feed type serves a specific purpose and uses a dedicated XML schema definition (XSD).
| Feed Type | Purpose | Key Elements | Schema |
|---|---|---|---|
| POST_PRODUCT_DATA | Create or update product listings. Defines the product catalog entry including title, description, brand, and category-specific attributes. | SKU, StandardProductID (UPC/EAN), ProductType, Title, Description, BulletPoint, Manufacturer | Product.xsd |
| POST_INVENTORY_AVAILABILITY_DATA | Update stock quantities. Controls whether a listing appears as available. Process within minutes of stock changes. | SKU, Quantity, FulfillmentLatency, SwitchFulfillmentTo | Inventory.xsd |
| POST_PRODUCT_PRICING_DATA | Set or update product prices. Supports standard pricing, sale pricing with date ranges, and minimum advertised price (MAP). | SKU, StandardPrice, SalePrice, SaleStartDate, SaleEndDate, MAP | Price.xsd |
| POST_PRODUCT_IMAGE_DATA | Associate images with product listings. Supports main image and up to 8 alternate images per product. | SKU, ImageType (Main, PT01-PT08), ImageLocation (URL) | ProductImage.xsd |
| POST_PRODUCT_RELATIONSHIP_DATA | Define parent-child variation relationships. Links size, color, or other variants under a parent ASIN. | ParentSKU, ChildSKU, VariationTheme (Size, Color, SizeColor) | Relationship.xsd |
XML Feed Structure
All SP-API feeds use a common XML envelope wrapping the message-specific content. The envelope contains header information and one or more messages.
<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>YOUR_SELLER_ID</MerchantIdentifier>
</Header>
<MessageType>Product</MessageType>
<PurgeAndReplace>false</PurgeAndReplace>
<Message>
<MessageID>1</MessageID>
<OperationType>Update</OperationType>
<Product>
<SKU>SKU-12345</SKU>
<StandardProductID>
<Type>UPC</Type>
<Value>884776536842</Value>
</StandardProductID>
<Condition>
<ConditionType>New</ConditionType>
</Condition>
<DescriptionData>
<Title>Nike Air Max 90 Running Shoe</Title>
<Brand>Nike</Brand>
<Description>Classic running shoe with visible Air cushioning.</Description>
<BulletPoint>Visible Air-Sole unit for lightweight cushioning</BulletPoint>
<BulletPoint>Leather and synthetic upper for durability</BulletPoint>
<BulletPoint>Rubber Waffle outsole for traction</BulletPoint>
<Manufacturer>Nike Inc.</Manufacturer>
<ItemType>running-shoes</ItemType>
</DescriptionData>
<ProductData>
<Shoes>
<Department>mens</Department>
<Size>10</Size>
<Color>Black/White</Color>
<Material>Leather</Material>
</Shoes>
</ProductData>
</Product>
</Message>
</AmazonEnvelope>Product Category Templates
Amazon requires category-specific attributes beyond the base product data. Each product category has its own XSD with additional required and optional fields. Submitting a product without the correct category template results in incomplete listings.
| Category | XSD File | Additional Required Fields |
|---|---|---|
| Clothing and Accessories | ClothingAccessories.xsd | Department, Size, Color, Material, ClothingType |
| Consumer Electronics | CE.xsd | ProductType, Wattage, Voltage, ConnectorType |
| Home and Garden | Home.xsd | Material, Color, ItemShape, PatternName |
| Sports and Outdoors | Sports.xsd | Department, Sport, Material, AgeRangeDescription |
| Health and Beauty | Health.xsd | Ingredients, Directions, Warnings, UnitCount |
| Grocery and Gourmet | FoodAndBeverages.xsd | Ingredients, AllergenInfo, UnitCount, ServingSize |
Feed Submission Workflow
Feed submission follows a four-step process through the SP-API Feeds endpoint.
| Step | API Call | Description |
|---|---|---|
| 1. Create Feed Document | POST /feeds/2021-06-30/documents | Request a pre-signed upload URL. Specify contentType as text/xml; charset=UTF-8. Returns feedDocumentId and upload URL. |
| 2. Upload Feed Content | PUT (pre-signed URL) | Upload the XML feed file to the pre-signed URL returned in step 1. Use gzip compression for feeds over 1 MB. |
| 3. Submit Feed | POST /feeds/2021-06-30/feeds | Submit the feed for processing. Specify feedType (e.g., POST_PRODUCT_DATA), marketplaceIds, and inputFeedDocumentId. |
| 4. Check Processing Status | GET /feeds/2021-06-30/feeds/{feedId} | Poll for feed processing status. States: IN_QUEUE, IN_PROGRESS, DONE, CANCELLED, FATAL. When DONE, retrieve the result document for error details. |