The Adyen Product Feed API provides a way for you to communicate with our centralized product knowledge hub that synchronizes your inventory with AI platforms. It operates on an asynchronous batch processing model to perform "semantic mapping" between your inventory data and industry-standard Agentic Commerce protocols. You can upload batches of information about your inventory to Adyen, and we will synchronize it with AI platforms.
Requirements
| Requirement | Description |
|---|---|
| Integration type | An existing online payments integration. |
How it works
The Product Feed API enables you to synchronize your product catalog with AI platforms through Adyen's centralized product knowledge hub. Here's how it works:
- Batch Ingestion: You upload product data in batches of up to 50 items.
- Semantic Mapping: Adyen processes your data and maps it to industry-standard Agentic Commerce protocols.
- AI Platform Synchronization: The mapped data is synchronized with AI platforms like and Meta.
- Asynchronous Processing: The API operates asynchronously, so you can check batch status later.
API Architecture & Operations
The API focuses on high-efficiency batch ingestion rather than individual item management.
Base URL:https://commerce-suite-test.adyen.com/commerce-suite/productFeed
Core Endpoints
| Method | Path | Summary | Description |
|---|---|---|---|
| POST | /v1/batches |
Submit a product batch | Ingests a list of up to 50 items for asynchronous processing to OpenAI or Meta. |
| GET | /v1/batches/{batchId} |
Get batch status | Retrieves the processing state (PENDING, SUCCEEDED, FAILED) and a summary of success/failure counts. |
Authentication
Secure your requests using one of the following methods:
- X-API-Key: Provide your Adyen API Key in the request header.
- Basic Auth: Standard HTTP Basic authentication is also supported.
Comprehensive data schema: UnifiedProductFeedItem
We have created a comprehensive data schema for the Product Feed API that includes all the necessary fields for product synchronization with AI platforms. The schema is organized into modules that represent different aspects of the product data.
| # | Module | Field Name | Data Type | Description / Notes |
|---|---|---|---|---|
| 1 | Core | id | String | Unique Item ID / SKU. |
| 2 | Core | eligibleSearch | Boolean | Visibility in search engines/AI agents. |
| 3 | Core | eligibleCheckout | Boolean | Direct purchase eligibility. |
| 4 | Core | title | String | Product name. |
| 5 | Core | description | String | Plain-text narrative. |
| 6 | Core | url | URI | Product landing page link. |
| 7 | Core | imageUrl | URI | Primary product image link. |
| 8 | Identifiers | brand | String | Manufacturer/Brand name. |
| 9 | Identifiers | gtin | String | Global Trade Item Number (UPC/EAN). |
| 10 | Identifiers | mpn | String | Manufacturer Part Number. |
| 11 | Item Info | condition | Enum | NEW, USED, REFURBISHED. |
| 12 | Item Info | productCategory | String | Categorization path (e.g., Apparel > Tops). |
| 13 | Item Info | material | String | Primary material/fabric. |
| 14 | Item Info | pattern | String | Design pattern description. |
| 15 | Item Info | richTextDescription | String | Description with HTML/Markdown support. |
| 16 | Item Info | dimensions | Object | L x W x H measurements. |
| 17 | Item Info | weight | Object | Shipping weight (value + unit). |
| 18 | Item Info | internalLabel | Array | Merchant-specific tags for filtering. |
| 19 | Item Info | ageGroup | Enum | NEWBORN, TODDLER, ADULT, etc. |
| 20 | Media | additionalImageUrls | Array | Supplementary images. |
| 21 | Media | videoUrl | URI | Product video link. |
| 22 | Media | model3dUrl | URI | AR/3D asset link (.glb/.usdz). |
| 23 | Pricing | price | Object | Base price (Currency + Minor Units). |
| 24 | Pricing | salePrice | Object | Discounted price. |
| 25 | Pricing | salePriceStartDate | ISO-8601 | Start of promotion. |
| 26 | Pricing | salePriceEndDate | ISO-8601 | End of promotion. |
| 27 | Pricing | unitPricingMeasure | String | Quantity for unit pricing. |
| 28 | Pricing | baseMeasure | String | Reference unit for pricing. |
| 29 | Pricing | pricingTrend | String | Narrative context (e.g., "Trending Up"). |
| 30 | Inventory | availability | Enum | IN_STOCK, OUT_OF_STOCK, PREORDER. |
| 31 | Inventory | availabilityDate | ISO-8601 | Date of stock availability. |
| 32 | Inventory | expirationDate | ISO-8601 | Date the listing expires. |
| 33 | Inventory | pickupMethod | Enum | IN_STORE, RESERVE, etc. |
| 34 | Inventory | pickupSla | Object | Pickup timeframe (e.g., 2 hours). |
| 35 | Inventory | inventory | Integer | Real-time stock count. |
| 36 | Variants | groupId | String | Parent ID for color/size groups. |
| 37 | Variants | listingHasVariations | Boolean | Flags if item is a parent listing. |
| 38 | Variants | variantDict | Object | KV pairs for unique attributes. |
| 39 | Variants | itemGroupTitle | String | Shared title for the variant group. |
| 40 | Variants | color | String | Product color. |
| 41 | Variants | size | Object | Value + sizing system (e.g., US 10). |
| 42 | Variants | gender | String | Target gender (male, female, unisex). |
| 43 | Variants | offerId | String | Unique offer code per variant. |
| 44 | Variants | customVariants | Array | Bespoke variant types. |
| 45 | Logistics | shipping | Object | Shipping cost/speed matrix. |
| 46 | Logistics | digital | Boolean | True if non-physical product. |
| 47 | Merchant | sellerName | String | Retailer name. |
| 48 | Merchant | marketplaceSeller | String | 3rd party seller name (if applicable). |
| 49 | Merchant | sellerUrl | URI | Seller storefront link. |
| 50 | Merchant | sellerPrivacyPolicy | URI | Privacy policy link. |
| 51 | Merchant | sellerTos | URI | Terms of Service link. |
| 52 | Returns | acceptsReturns | Boolean | Return eligibility. |
| 53 | Returns | returnDeadlineInDays | Integer | Return window (e.g., 30). |
| 54 | Returns | acceptsExchanges | Boolean | Exchange eligibility. |
| 55 | Returns | returnPolicy | URI | Full return policy link. |
| 56 | Performance | popularityScore | String | Numeric score (e.g., "4.50"). |
| 57 | Performance | returnRate | String | Return frequency (e.g., "3%"). |
| 58 | Compliance | warning | String | Safety/legal warnings. |
| 59 | Compliance | warningUrl | URI | Link to warning details. |
| 60 | Compliance | ageRestriction | Integer | Minimum legal age for purchase. |
| 61 | Social | reviewCount | Integer | Total product reviews. |
| 62 | Social | starRating | String | Average star rating (e.g., "4.80"). |
| 63 | Social | storeReviewCount | Integer | Total store reviews. |
| 64 | Social | storeStarRating | String | Store star rating. |
| 65 | Social | qAndA | Array | List of product Q\&As. |
| 66 | Social | reviews | Array | Detailed review objects. |
| 67 | Related | relatedProductId | String | ID of a similar/upsell item. |
| 68 | Related | relationshipType | Enum | cross_sell, up_sell, similar. |
| 69 | Geo | targetCountries | Array | Where the product can be sold. |
| 70 | Geo | storeCountry | String | ISO country code of the store. |
| 71 | Geo | geoPrice | Object | Country-specific pricing. |
| 72 | Geo | geoAvailability | Object | Country-specific stock status. |
| 73 | Metadata | customData | Object | Additional merchant-defined fields. |
Data Integrity & Formatting Rules
To pass validation, data must adhere to these strict types:
Price Formatting (Minor Units)
All price values (like Price, GeoPrice) must be integers in minor units.
- Example: For a price of USD 79.99, send 7999. For USD 20.00, send 2000.
- Currency Code: Must be the three-letter ISO-4217 code (e.g., USD).
Metric Formatting (Regex Strings)
Fields for weight, dimensions, and ratings must be stringswith exactly two decimal places.
- Requirement: Values must match
^\\d+\\.\\d{2}$. For example: 1.50 or 12.00. - Affected Fields:
weight.value,dimension.height/dimension.length/dimension.width,starRating,storeStarRating, andpopularityScore.
Relationship Enum
When linking items in the relatedProduct array, use one of the following relationshipType values:
- PART_OF_SET
- REQUIRED_PART
- OFTEN_BOUGHT_WITH
- SUBSTITUTE
- DIFFERENT_BRAND
- ACCESSORY
Make a request to the API
Make a POST /v1/batches request including the data from the UnifiedProductFeedItem schema.