How to use the Feeds API in Amazon SP API

Hello everyone! Rohan here from Algo Clan. We have been integrating the Feeds API for a few of the mid market sellers these days. Thought to share my experience and how the Feeds API really works under the hood.

Don’t get bored with the technicalities, I will try to summarize this as simplistically as possible. Please take this article as a go to before integrating the Feeds API into other software or your own custom built solutions. 

What is the Feeds API?

The Amazon Selling Partner Feeds API allows sellers to programmatically upload data feeds to Amazon for various purposes such as updating inventory, prices, product information, and other attributes. This API streamlines the process of managing large amounts of data by enabling bulk operations through feed uploads.

Key Features/ What the Feeds API can really help with?

Bulk Data Upload: Supports uploading large volumes of data in a single operation, reducing the need for multiple API calls.

Various Feed Types: Handles different types of feeds, including inventory updates, order acknowledgments, product listings, and more.

Asynchronous Processing: Processes feeds asynchronously, allowing sellers to continue with other operations while the feed is being processed.

Monitoring and Reporting: Provides mechanisms to monitor the status of feed submissions and retrieve processing reports to identify and correct errors.

Main Endpoints/The nitty gritty!

  1. Create Feed Document: Generates a pre-signed URL where the feed content can be uploaded.
    • Endpoint: POST /feeds/2021-06-30/documents
    • Purpose: Obtain a URL to upload the feed file securely.
  2. Create Feed: Submits the feed for processing.
    • Endpoint: POST /feeds/2021-06-30/feeds
    • Purpose: Create and submit a feed for processing by Amazon.
  3. Get Feed: Retrieves the status and details of a specific feed.
    • Endpoint: GET /feeds/2021-06-30/feeds/{feedId}
    • Purpose: Check the status of the feed submission.
  4. Get Feed Document: Retrieves the feed processing report.
    • Endpoint: GET /feeds/2021-06-30/documents/{feedDocumentId}
    • Purpose: Obtain the processing report to review any errors or warnings that occurred during feed processing.

Workflow:

  1. Generate Feed Document URL: Create a feed document to get a pre-signed URL for uploading the feed file.
  2. Upload Feed File: Use the pre-signed URL to upload the feed file to Amazon.
  3. Submit Feed: Create a feed to submit the uploaded feed file for processing.
  4. Monitor Feed Status: Retrieve the feed status to monitor the processing progress.
  5. Retrieve Processing Report: Download the feed processing report to review any errors or warnings and make necessary corrections.

Additional Features and Use Cases of the Feeds API

Now, as I have gone through the basics of the Feeds API, the endpoints, where we can use those to supercharge the business processes- I would like to start showing you some advanced features and potential use cases of the API. Here are some additional capabilities and use cases that helped our clients (mid market Amazon Sellers in US marketplace) to optimize their operations big time:

Advanced Features/The REAL DEAL!

  1. Feed Encryption
    • Purpose: Ensure the security of sensitive data by encrypting feed content before uploading it to Amazon.
    • How it works: Use Amazon’s provided encryption keys and methods to encrypt the data before upload and decrypt the processing report upon retrieval.
  2. Feed Types
    • Various Feed Types: Supports multiple feed types such as:
      • Inventory feeds (POST_INVENTORY_AVAILABILITY_DATA)
      • Order acknowledgment feeds (POST_ORDER_ACKNOWLEDGEMENT_DATA)
      • Product listing feeds (POST_PRODUCT_DATA)
      • Price updates (POST_PRODUCT_PRICING_DATA)
      • Order cancellation feeds (POST_ORDER_FULFILLMENT_DATA)
    • Customization: Choose the feed type based on the specific data and updates required.
  3. Batch Processing
    • Bulk Operations: Submit large amounts of data in a single feed to reduce the number of API calls and improve efficiency.
    • Scalability: Handle high-volume updates efficiently, suitable for large sellers managing extensive inventories.
  4. Scheduling and Automation
    • Automated Submissions: Schedule feed submissions at regular intervals to keep data synchronized without manual intervention.
    • Integration with Other Systems: Connect with inventory management systems, ERP systems, and other software to automate the feed creation and submission process.

Advanced Use Cases

  1. Multi-Marketplace Management (one of the most common use cases across our clientbase/Sellers are actively looking to diversity themselves in selling their brands)
    • Purpose: Manage product listings and inventory across multiple Amazon marketplaces simultaneously.
    • How it works: Specify multiple marketplaceIds in the feed submission to update data across different regions.
  2. Error Handling and Retry Logic
    • Purpose: Implement robust error handling and retry mechanisms to ensure data consistency and reliability.
    • How it works: Monitor feed processing status and handle errors such as network failures or data validation issues by retrying failed submissions.
  3. Dynamic Pricing Updates
    • Purpose: Automatically adjust product prices based on market conditions, competitor pricing, and inventory levels.
    • How it works: Use the POST_PRODUCT_PRICING_DATA feed type to update prices dynamically based on real-time data and predefined pricing strategies.
  4. Order Fulfillment and Shipping
    • Purpose: Streamline order processing and fulfillment by integrating order acknowledgment and shipping feeds.
    • How it works: Submit POST_ORDER_ACKNOWLEDGEMENT_DATA and POST_ORDER_FULFILLMENT_DATA feeds to acknowledge orders, confirm shipments, and update tracking information.
  5. Compliance and Data Accuracy
    • Purpose: Ensure compliance with Amazon’s listing requirements and maintain data accuracy.
    • How it works: Regularly submit feeds to update product information, correct errors, and comply with changing regulations and guidelines.

Example ERD for Feeds API Use Cases

Based on our discussion on the above use cases, I would like to share one of our ERD templates for your convenience.

This Entity-Relationship Diagram (ERD) captures the main entities and their relationships involved in managing product listings, inventory updates, and pricing updates.

Entities and Attributes

  1. Product
    • ProductID (Primary Key)
    • ASIN
    • Title
    • Category
    • Brand
  2. Feed
    • FeedID (Primary Key)
    • FeedType
    • SubmissionDate
    • ProcessingStatus
    • MarketplaceID (Foreign Key)
  3. FeedDocument
    • FeedDocumentID (Primary Key)
    • FeedID (Foreign Key)
    • DocumentURL
    • ContentType
    • EncryptionDetails
  4. Marketplace
    • MarketplaceID (Primary Key)
    • MarketplaceName
    • Region
  5. PriceUpdate
    • PriceUpdateID (Primary Key)
    • ProductID (Foreign Key)
    • NewPrice
    • EffectiveDate
  6. InventoryUpdate
    • InventoryUpdateID (Primary Key)
    • ProductID (Foreign Key)
    • NewQuantity
    • FulfillmentCenterID (Foreign Key)
    • UpdateDate
  7. FulfillmentCenter
    • FulfillmentCenterID (Primary Key)
    • CenterName
    • Location

Explanation of Relationships

Product to PriceUpdate: One-to-Many relationship where one product can have multiple price updates over time.

Product to InventoryUpdate: One-to-Many relationship where one product can have multiple inventory updates over time.

Marketplace to Feed: One-to-Many relationship where one marketplace can have multiple feeds submitted.

Feed to FeedDocument: One-to-Many relationship where one feed can have multiple associated documents.

FulfillmentCenter to InventoryUpdate: One-to-Many relationship where one fulfillment center can manage multiple inventory updates for various products.

I hope this article helped you to better understand the use case and nitty gritty of the Feeds API. Please drop me a line here or give me a direct ping here at linkedin. Happy to chat more. Thanks and have a great day!

Rohan