Upsert Products using CSV
curl --request POST \
--url 'https://api.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv"
payload = {}
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({})
};
fetch('https://api.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv', 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.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv",
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([
]),
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.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv"
payload := strings.NewReader("{}")
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.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv")
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 = "{}"
response = http.request(request)
puts response.read_bodyCatalog
Upsert Products using CSV
This endpoint allows you to upload and upsert products in bulk using a CSV file. The CSV file should contain product information that will be processed and updated in your inventory.
POST
{micro_service_base_url}
/
inventory-service-v2
/
companies
/
1000019
/
products
/
bulk
/
csv
Upsert Products using CSV
curl --request POST \
--url 'https://api.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv"
payload = {}
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({})
};
fetch('https://api.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv', 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.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv",
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([
]),
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.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv"
payload := strings.NewReader("{}")
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.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/{{micro_service_base_url}}/inventory-service-v2/companies/1000019/products/bulk/csv")
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 = "{}"
response = http.request(request)
puts response.read_bodyThis endpoint processes CSV files containing product data and updates your store’s inventory accordingly. All products in the CSV will be validated against our validation rules before being processed.
The system will process your CSV file in the background. You can check the status of the ingestion job using the Get Job Status endpoint.
Only products that pass all validation rules will be inserted or updated in your inventory.
Body
file
required
The CSV file containing product data to be uploaded and processed
Response
This endpoint processes the file asynchronously. No immediate response body is provided.
Make sure your CSV file follows the correct format with all required fields to ensure successful processing.

