Skip to main content
POST
/
api
/
delta
Submit a product delta update
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

application/json
AppKey
string
required

Your store's unique access key

SecretKey
string
required

Your store's secret key

Products
object[]

Products to add or update

DeleteProducts
string[]

Product IDs to remove

SetCategoryOnProducts
object[]

Category assignments to add

RemoveCategoryFromProducts
object[]

Category assignments to remove

AccountPrices
object[]

Account-specific prices to add or update

DeleteAccountPrices
object[]

Account-specific prices to remove

Users
object[]

User records to add or update

Response

Delta accepted for processing

Token
string

Processing token for status tracking