curl --request POST \
--url https://api-eu-w-1.pureclarity.net/api/delta \
--header 'Content-Type: application/json' \
--data '
{
"AppKey": "your-access-key",
"SecretKey": "your-secret-key",
"Products": [
{
"Id": "PROD-001",
"Title": "Running Shoes - Updated",
"Prices": [
"59.99 GBP",
"74.99 USD"
],
"Categories": [
"shoes",
"running"
],
"Link": "/products/running-shoes",
"Image": "https://cdn.example.com/shoes.jpg"
}
],
"DeleteProducts": [
"PROD-OLD-001"
]
}
'import requests
url = "https://api-eu-w-1.pureclarity.net/api/delta"
payload = {
"AppKey": "your-access-key",
"SecretKey": "your-secret-key",
"Products": [
{
"Id": "PROD-001",
"Title": "Running Shoes - Updated",
"Prices": ["59.99 GBP", "74.99 USD"],
"Categories": ["shoes", "running"],
"Link": "/products/running-shoes",
"Image": "https://cdn.example.com/shoes.jpg"
}
],
"DeleteProducts": ["PROD-OLD-001"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
AppKey: 'your-access-key',
SecretKey: 'your-secret-key',
Products: [
{
Id: 'PROD-001',
Title: 'Running Shoes - Updated',
Prices: ['59.99 GBP', '74.99 USD'],
Categories: ['shoes', 'running'],
Link: '/products/running-shoes',
Image: 'https://cdn.example.com/shoes.jpg'
}
],
DeleteProducts: ['PROD-OLD-001']
})
};
fetch('https://api-eu-w-1.pureclarity.net/api/delta', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-eu-w-1.pureclarity.net/api/delta",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'AppKey' => 'your-access-key',
'SecretKey' => 'your-secret-key',
'Products' => [
[
'Id' => 'PROD-001',
'Title' => 'Running Shoes - Updated',
'Prices' => [
'59.99 GBP',
'74.99 USD'
],
'Categories' => [
'shoes',
'running'
],
'Link' => '/products/running-shoes',
'Image' => 'https://cdn.example.com/shoes.jpg'
]
],
'DeleteProducts' => [
'PROD-OLD-001'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-eu-w-1.pureclarity.net/api/delta"
payload := strings.NewReader("{\n \"AppKey\": \"your-access-key\",\n \"SecretKey\": \"your-secret-key\",\n \"Products\": [\n {\n \"Id\": \"PROD-001\",\n \"Title\": \"Running Shoes - Updated\",\n \"Prices\": [\n \"59.99 GBP\",\n \"74.99 USD\"\n ],\n \"Categories\": [\n \"shoes\",\n \"running\"\n ],\n \"Link\": \"/products/running-shoes\",\n \"Image\": \"https://cdn.example.com/shoes.jpg\"\n }\n ],\n \"DeleteProducts\": [\n \"PROD-OLD-001\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-eu-w-1.pureclarity.net/api/delta")
.header("Content-Type", "application/json")
.body("{\n \"AppKey\": \"your-access-key\",\n \"SecretKey\": \"your-secret-key\",\n \"Products\": [\n {\n \"Id\": \"PROD-001\",\n \"Title\": \"Running Shoes - Updated\",\n \"Prices\": [\n \"59.99 GBP\",\n \"74.99 USD\"\n ],\n \"Categories\": [\n \"shoes\",\n \"running\"\n ],\n \"Link\": \"/products/running-shoes\",\n \"Image\": \"https://cdn.example.com/shoes.jpg\"\n }\n ],\n \"DeleteProducts\": [\n \"PROD-OLD-001\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-eu-w-1.pureclarity.net/api/delta")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"AppKey\": \"your-access-key\",\n \"SecretKey\": \"your-secret-key\",\n \"Products\": [\n {\n \"Id\": \"PROD-001\",\n \"Title\": \"Running Shoes - Updated\",\n \"Prices\": [\n \"59.99 GBP\",\n \"74.99 USD\"\n ],\n \"Categories\": [\n \"shoes\",\n \"running\"\n ],\n \"Link\": \"/products/running-shoes\",\n \"Image\": \"https://cdn.example.com/shoes.jpg\"\n }\n ],\n \"DeleteProducts\": [\n \"PROD-OLD-001\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"Token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"Error": "<string>"
}{
"Error": "<string>"
}{
"Error": "<string>"
}Submit a product delta update
Submit incremental product updates without resubmitting a full feed. Use this endpoint to add, update, or delete products, manage category assignments, update account-specific pricing, and update user data.
Returns a token that can be used to check the processing status via
the /api/deltastatus endpoint.
curl --request POST \
--url https://api-eu-w-1.pureclarity.net/api/delta \
--header 'Content-Type: application/json' \
--data '
{
"AppKey": "your-access-key",
"SecretKey": "your-secret-key",
"Products": [
{
"Id": "PROD-001",
"Title": "Running Shoes - Updated",
"Prices": [
"59.99 GBP",
"74.99 USD"
],
"Categories": [
"shoes",
"running"
],
"Link": "/products/running-shoes",
"Image": "https://cdn.example.com/shoes.jpg"
}
],
"DeleteProducts": [
"PROD-OLD-001"
]
}
'import requests
url = "https://api-eu-w-1.pureclarity.net/api/delta"
payload = {
"AppKey": "your-access-key",
"SecretKey": "your-secret-key",
"Products": [
{
"Id": "PROD-001",
"Title": "Running Shoes - Updated",
"Prices": ["59.99 GBP", "74.99 USD"],
"Categories": ["shoes", "running"],
"Link": "/products/running-shoes",
"Image": "https://cdn.example.com/shoes.jpg"
}
],
"DeleteProducts": ["PROD-OLD-001"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
AppKey: 'your-access-key',
SecretKey: 'your-secret-key',
Products: [
{
Id: 'PROD-001',
Title: 'Running Shoes - Updated',
Prices: ['59.99 GBP', '74.99 USD'],
Categories: ['shoes', 'running'],
Link: '/products/running-shoes',
Image: 'https://cdn.example.com/shoes.jpg'
}
],
DeleteProducts: ['PROD-OLD-001']
})
};
fetch('https://api-eu-w-1.pureclarity.net/api/delta', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-eu-w-1.pureclarity.net/api/delta",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'AppKey' => 'your-access-key',
'SecretKey' => 'your-secret-key',
'Products' => [
[
'Id' => 'PROD-001',
'Title' => 'Running Shoes - Updated',
'Prices' => [
'59.99 GBP',
'74.99 USD'
],
'Categories' => [
'shoes',
'running'
],
'Link' => '/products/running-shoes',
'Image' => 'https://cdn.example.com/shoes.jpg'
]
],
'DeleteProducts' => [
'PROD-OLD-001'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-eu-w-1.pureclarity.net/api/delta"
payload := strings.NewReader("{\n \"AppKey\": \"your-access-key\",\n \"SecretKey\": \"your-secret-key\",\n \"Products\": [\n {\n \"Id\": \"PROD-001\",\n \"Title\": \"Running Shoes - Updated\",\n \"Prices\": [\n \"59.99 GBP\",\n \"74.99 USD\"\n ],\n \"Categories\": [\n \"shoes\",\n \"running\"\n ],\n \"Link\": \"/products/running-shoes\",\n \"Image\": \"https://cdn.example.com/shoes.jpg\"\n }\n ],\n \"DeleteProducts\": [\n \"PROD-OLD-001\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-eu-w-1.pureclarity.net/api/delta")
.header("Content-Type", "application/json")
.body("{\n \"AppKey\": \"your-access-key\",\n \"SecretKey\": \"your-secret-key\",\n \"Products\": [\n {\n \"Id\": \"PROD-001\",\n \"Title\": \"Running Shoes - Updated\",\n \"Prices\": [\n \"59.99 GBP\",\n \"74.99 USD\"\n ],\n \"Categories\": [\n \"shoes\",\n \"running\"\n ],\n \"Link\": \"/products/running-shoes\",\n \"Image\": \"https://cdn.example.com/shoes.jpg\"\n }\n ],\n \"DeleteProducts\": [\n \"PROD-OLD-001\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-eu-w-1.pureclarity.net/api/delta")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"AppKey\": \"your-access-key\",\n \"SecretKey\": \"your-secret-key\",\n \"Products\": [\n {\n \"Id\": \"PROD-001\",\n \"Title\": \"Running Shoes - Updated\",\n \"Prices\": [\n \"59.99 GBP\",\n \"74.99 USD\"\n ],\n \"Categories\": [\n \"shoes\",\n \"running\"\n ],\n \"Link\": \"/products/running-shoes\",\n \"Image\": \"https://cdn.example.com/shoes.jpg\"\n }\n ],\n \"DeleteProducts\": [\n \"PROD-OLD-001\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"Token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"Error": "<string>"
}{
"Error": "<string>"
}{
"Error": "<string>"
}Body
Your store's unique access key
Your store's secret key
Products to add or update
Show child attributes
Show child attributes
Product IDs to remove
Category assignments to add
Show child attributes
Show child attributes
Category assignments to remove
Show child attributes
Show child attributes
Account-specific prices to add or update
Show child attributes
Show child attributes
Account-specific prices to remove
Show child attributes
Show child attributes
User records to add or update
Show child attributes
Show child attributes
Response
Delta accepted for processing
Processing token for status tracking
