Syncing products via API
Standard product sync
Once your catalog is created, you are able to sync products to it. The example below outlines a standard context to sync products:
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
"catalogProducts": [
{
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"gtin": "23556578965543",
"inventory": 50,
"price": "19.99",
"tags": [
"imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
],
"filters": [
"category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0"
]
}
]
}If successful, the following object will be returned:
In this context, empty or null values for groups and profit can be ignored.
Syncing location information
You are also able to synchronise filters for various locations your products are in store. This is useful for store/location level optimisation of your product information.
If successful, the following object will be returned:
Syncing HFSS information
In your product sync, you will need to send a filter of hfss:true or hfss:false. This enables Epsilon Retail Media to filter our interface appropriately.
Syncing multiple products
If you are syncing multiple products, you can sequence up to 100 per request.
An example context for syncing two products is outlined below:
If successful, the following object will be returned:
Updating product inventory
To update a product's inventory, you will need to re-sync the product with Epsilon Retail Media. In your sync, flag the product's inventory to 0. An example is outlined below:
Updating product images
Epsilon caches image URLs to ensure consistent performance and reduce requests to your image server. If you update an image without changing its URL, you must explicitly trigger a refresh in Epsilon. To do this:
Remove the existing image_url from the product.
Re-send the same image_url once the update is complete.
Alternatively, if your image server supports it, you can force a refresh by appending a query string (for example, a version or timestamp) to the existing URL. This will cause Epsilon to reload the image..
Retrieving products
Once you have a product in your catalog, you may wish to retrieve the current information it at a later time.
To do this, you can make a GET http request with the url form of v1/catalog-products/catalogId/<PRODUCT_CODE>. The endpoint is capable of accepting one product code per request. A placeholder request is outlined below:
You should receive the current information ingested in the Epsilon Retail Media system for the product code. An example is below
Deleting products
To remove a product from your catalog, send a DELETE HTTP request using the following format when the product is no longer needed.
Request parameters
The endpoint accepts one product code per request, typically your GTIN ID.
Deleting products with seller ID
If the product includes a seller ID, specify it as a query parameter when deleting the product:
Processing time
Product deletion may take between 30 minutes to one hour to process.
Error handling
If you receive a "product not found" error, it likely means the product has not been ingested into the Epsilon Retail Media system.

