Links

Product Catalog API

Share your product catalog to enable services that requires up to date product information. The product catalog is required for services like product recommendations and product analytics.

Add this source

  1. 1.
    Log into your engage account
  2. 2.
    Go to Data Platform > Integrations and select the Product Catalog API
  3. 3.
    Follow the instructions to get started

Use this source

Once activated, you may start to send products to us. The endpoint accept single products or batches of maximum 250 products at a time. Check the API Reference for specifics and code examples in most languages.
post
https://api-dot-solutionsone-211314.ew.r.appspot.com
/v1/products/catalog
Product Catalog API
Only base products are required to be uploaded as part of the product catalog. Product variants are currently not supported.

Example call

cURL
Javascript - jQuery
Javascript - Fetch
Nodejs - Axios
PHP - cURL
Python
curl --location --request POST 'https://api-dot-solutionsone-211314.ew.r.appspot.com/v1/products/catalog'
--header 'Authorization: Bearer [ADD YOUR USER TOKEN HERE]' \
--header 'Content-Type: application/json'
--data-raw '{
"currency": "USD",
"image": "https://some-image-url.com",
"link": "https://a-link-to-the-product.com",
"product_id": 20200101,
"name": "My new product",
"price": 29.99,
}'
var settings = {
"url": "https://api-dot-solutionsone-211314.ew.r.appspot.com/v1/products/catalog",
"method": "POST",
"timeout": 0,
"headers": {
"Authorization": "Bearer [ADD YOUR USER TOKEN HERE]",
"Content-Type": "application/json"
},
"data": JSON.stringify({"currency":"USD","image":"https://some-image-url.com","link":"https://a-link-to-the-product.com","product_id":20200101,"name":"My new product","price":29.99}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer [ADD YOUR USER TOKEN HERE]");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({"currency":"USD","image":"https://some-image-url.com","link":"https://a-link-to-the-product.com","product_id":20200101,"name":"My new product","price":29.99});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api-dot-solutionsone-211314.ew.r.appspot.com/v1/products/catalog", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
var axios = require('axios');
var data = JSON.stringify({"currency":"USD","image":"https://some-image-url.com","link":"https://a-link-to-the-product.com","product_id":20200101,"name":"My new product","price":29.99});
var config = {
method: 'post',
url: 'https://api-dot-solutionsone-211314.ew.r.appspot.com/v1/products/catalog',
headers: {
'Authorization': 'Bearer [ADD YOUR USER TOKEN HERE]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-dot-solutionsone-211314.ew.r.appspot.com/v1/products/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\n \"currency\": \"USD\",\n \"image\": \"https://some-image-url.com\",\n \"link\": \"https://a-link-to-the-product.com\",\n \"product_id\": 20200101,\n \"name\": \"My new product\",\n \"price\": 29.99\n}",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer [ADD YOUR USER TOKEN HERE]",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
import json
url = "https://api-dot-solutionsone-211314.ew.r.appspot.com/v1/products/catalog"
payload = {
"currency": "USD",
"image": "https://some-image-url.com",
"link": "https://a-link-to-the-product.com",
"product_id": 20200101,
"name": "My new product",
"price": 29.99
}
headers = {
'Authorization': 'Bearer [ADD YOUR USER TOKEN HERE]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = json.dumps(payload))
print(response.text.encode('utf8'))

Data formats

Dates & Time

Format
Example
YYYY-MM-DD HH:MM:SS+HH:MM
2020-01-01 04:23:01+04:00
YYYY-MM-DD HH:MM:SS.ffffff
2020-01-01 04:23:01.000384
YYYY-MM-DD HH:MM:SS
2020-01-01 04:23:01
YYYY-MM-DDTHH:MM:SS+HH:MM
2020-01-01T04:23:01+04:00
YYYY-MM-DDTHH:MM:SS.ffffff
2020-01-01T04:23:01.000384
YYYY-MM-DDTHH:MM:SS
2020-01-01T04:23:01

Generic format supported

YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]