# How to Automate Amazon Product Listings Using the API

- Tool: API Automations
- Difficulty: Advanced
- Fix time: 60–90 minutes
- Compatibility: Amazon SP-API (2021-08-01), Node.js 18+, Python 3.9+
- Last updated: May 2026

## TL;DR

Use the Amazon SP-API Listings Items API to create and update listings programmatically. PUT to /listings/2021-08-01/items/{sellerId}/{sku} with product attributes matching the Product Type Definitions schema. For bulk updates, use the JSON_LISTINGS_FEED via the Feeds API instead of individual calls. Authentication is LWA OAuth 2.0 only — AWS IAM/SigV4 is no longer required.

## Best practices

- Query the Product Type Definitions API first — attribute names are product-type-specific and differ between KITCHEN, SHIRT, and HOME_BED_AND_BATH
- Use patchListingsItem for incremental updates (price, quantity) to avoid accidentally overwriting title, description, or images
- For 100+ listings, always use JSON_LISTINGS_FEED — individual putListingsItem calls at scale will hit rate limits and take too long
- Subscribe to LISTINGS_ITEM_STATUS_CHANGE notifications via SQS to detect listing approval or issues asynchronously instead of polling
- Store your SKU-to-submissionId mapping to correlate status change notifications back to your submission
- Test with a single listing in sandbox or a low-risk SKU before running bulk operations
- Rotate LWA client credentials every 180 days — calendar reminder is essential
- Log all INVALID issue details: Amazon's error messages identify the exact attribute name and required format

## Frequently asked questions

### Do I still need AWS IAM credentials and SigV4 signing to use the SP-API?

No. As of October 2023, SP-API authentication is LWA OAuth 2.0 only. You only need the x-amz-access-token header. AWS IAM roles and SigV4 request signing are no longer required. This significantly simplifies the integration compared to older tutorials that describe the IAM setup.

### Why does Amazon return INVALID_ATTRIBUTE for my listing even though the field name looks right?

Attribute names in the SP-API are product-type-specific and must exactly match the Product Type Definitions schema. 'name' fails; 'item_name' is correct. 'price' fails; 'list_price' is correct. Download the JSON Schema for your specific productType from the Product Type Definitions API and use it as your reference for every attribute name.

### What's the difference between putListingsItem and patchListingsItem?

putListingsItem is a full replacement — you must include all attributes. patchListingsItem applies partial updates using JSON Merge Patch (RFC 7396) — you only send the attributes you want to change. Use PUT for initial creation and PATCH for incremental updates like price and quantity changes to avoid accidentally overwriting your title or images.

### Can I still use flat-file CSV uploads instead of the API?

XML/flat-file feeds were deprecated March 31, 2025. For bulk listing management you should now use JSON_LISTINGS_FEED via the Feeds API. It's the API equivalent of flat-file uploads but uses JSON attribute format that matches the Product Type Definitions schema.

### How long does it take for a listing to become active after putListingsItem returns ACCEPTED?

ACCEPTED means Amazon received the submission, not that the listing is live. Listings typically go active within 15–60 minutes. For brand-new ASINs with no existing catalog entry, it can take several hours. Subscribe to the LISTINGS_ITEM_STATUS_CHANGE notification via SQS to receive an event when the listing status changes.

### Can RapidDev help me migrate my Amazon catalog to the new SP-API format?

Yes. RapidDev can build a migration pipeline that reads your existing flat-file or spreadsheet catalog, maps attributes to the correct Product Type Definitions schema for each product type, and submits them via the SP-API Feeds API. We handle the attribute mapping, error monitoring, and re-submission logic.

### What marketplace IDs should I use for different Amazon regions?

North America (US): ATVPDKIKX0DER. Canada: A2EUQ1WTGCTBG2. Mexico: A1AM78C64UM0Y8. UK: A1F83G8C2ARO7P. Germany: A1PA6795UKMFR9. France: A13V1IB3VIYZZH. Japan: A1VC38T7YXB528. Australia: A39IBJ37TRP1C6. Use the corresponding regional base URL for non-NA marketplaces (sellingpartnerapi-eu.amazon.com for Europe, sellingpartnerapi-fe.amazon.com for Far East).

---

Source: https://www.rapidevelopers.com/api-automations/how-to-automate-amazon-product-listings-using-the-api
© RapidDev — https://www.rapidevelopers.com/api-automations/how-to-automate-amazon-product-listings-using-the-api
