Create product
curl --request POST \
--url https://live.nocnocstore.com/api/v2/products \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"sku": "<string>",
"brand": "<string>",
"available_quantity": 123,
"price": 123,
"currency_code": "<string>",
"title": "<string>",
"description": "<string>",
"description_language": "<string>",
"condition": "<string>",
"package_dimensions": {},
"product_dimensions": {},
"images": [
{}
],
"international_ids": {},
"attributes": [
{}
]
}
'import requests
url = "https://live.nocnocstore.com/api/v2/products"
payload = {
"sku": "<string>",
"brand": "<string>",
"available_quantity": 123,
"price": 123,
"currency_code": "<string>",
"title": "<string>",
"description": "<string>",
"description_language": "<string>",
"condition": "<string>",
"package_dimensions": {},
"product_dimensions": {},
"images": [{}],
"international_ids": {},
"attributes": [{}]
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
sku: '<string>',
brand: '<string>',
available_quantity: 123,
price: 123,
currency_code: '<string>',
title: '<string>',
description: '<string>',
description_language: '<string>',
condition: '<string>',
package_dimensions: {},
product_dimensions: {},
images: [{}],
international_ids: {},
attributes: [{}]
})
};
fetch('https://live.nocnocstore.com/api/v2/products', 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://live.nocnocstore.com/api/v2/products",
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([
'sku' => '<string>',
'brand' => '<string>',
'available_quantity' => 123,
'price' => 123,
'currency_code' => '<string>',
'title' => '<string>',
'description' => '<string>',
'description_language' => '<string>',
'condition' => '<string>',
'package_dimensions' => [
],
'product_dimensions' => [
],
'images' => [
[
]
],
'international_ids' => [
],
'attributes' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <x-api-key>"
],
]);
$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://live.nocnocstore.com/api/v2/products"
payload := strings.NewReader("{\n \"sku\": \"<string>\",\n \"brand\": \"<string>\",\n \"available_quantity\": 123,\n \"price\": 123,\n \"currency_code\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"description_language\": \"<string>\",\n \"condition\": \"<string>\",\n \"package_dimensions\": {},\n \"product_dimensions\": {},\n \"images\": [\n {}\n ],\n \"international_ids\": {},\n \"attributes\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-api-key>")
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://live.nocnocstore.com/api/v2/products")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"sku\": \"<string>\",\n \"brand\": \"<string>\",\n \"available_quantity\": 123,\n \"price\": 123,\n \"currency_code\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"description_language\": \"<string>\",\n \"condition\": \"<string>\",\n \"package_dimensions\": {},\n \"product_dimensions\": {},\n \"images\": [\n {}\n ],\n \"international_ids\": {},\n \"attributes\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://live.nocnocstore.com/api/v2/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sku\": \"<string>\",\n \"brand\": \"<string>\",\n \"available_quantity\": 123,\n \"price\": 123,\n \"currency_code\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"description_language\": \"<string>\",\n \"condition\": \"<string>\",\n \"package_dimensions\": {},\n \"product_dimensions\": {},\n \"images\": [\n {}\n ],\n \"international_ids\": {},\n \"attributes\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"sku": "SKU-001",
"brand": "BRAND",
"available_quantity": 20,
"price": 23,
"currency_code": "USD",
"package_dimensions": {
"size": { "unit": "cm", "width": 28, "height": 15, "length": 46 },
"weight": { "value": 3, "unit": "kg" }
},
"product_dimensions": {
"size": { "unit": "cm", "width": 26, "height": 13, "length": 42 },
"weight": { "value": 2, "unit": "kg" }
},
"images": [{ "source_url": "https://example.com/image.jpg" }],
"condition": "NEW",
"title": "Product Title",
"description_language": "en",
"description": "Product description",
"attributes": [
{ "type": "COLOR", "value": "Red" },
{ "type": "SIZE", "value": "Large" }
]
}
{
"code": 400,
"message": "Invalid Request Payload.",
"errors": [
"Sku should be between 1 character minimum and 45 characters maximum.",
"Brand should be between 1 character minimum and 45 characters maximum."
]
}
{
"code": 400,
"message": "Sku already exists."
}
{
"code": 401,
"message": "Unauthorized"
}
Products
Create product
Creates a new product and adds it to your catalog. Requires full product data.
POST
/
api
/
v2
/
products
Create product
curl --request POST \
--url https://live.nocnocstore.com/api/v2/products \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"sku": "<string>",
"brand": "<string>",
"available_quantity": 123,
"price": 123,
"currency_code": "<string>",
"title": "<string>",
"description": "<string>",
"description_language": "<string>",
"condition": "<string>",
"package_dimensions": {},
"product_dimensions": {},
"images": [
{}
],
"international_ids": {},
"attributes": [
{}
]
}
'import requests
url = "https://live.nocnocstore.com/api/v2/products"
payload = {
"sku": "<string>",
"brand": "<string>",
"available_quantity": 123,
"price": 123,
"currency_code": "<string>",
"title": "<string>",
"description": "<string>",
"description_language": "<string>",
"condition": "<string>",
"package_dimensions": {},
"product_dimensions": {},
"images": [{}],
"international_ids": {},
"attributes": [{}]
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
sku: '<string>',
brand: '<string>',
available_quantity: 123,
price: 123,
currency_code: '<string>',
title: '<string>',
description: '<string>',
description_language: '<string>',
condition: '<string>',
package_dimensions: {},
product_dimensions: {},
images: [{}],
international_ids: {},
attributes: [{}]
})
};
fetch('https://live.nocnocstore.com/api/v2/products', 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://live.nocnocstore.com/api/v2/products",
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([
'sku' => '<string>',
'brand' => '<string>',
'available_quantity' => 123,
'price' => 123,
'currency_code' => '<string>',
'title' => '<string>',
'description' => '<string>',
'description_language' => '<string>',
'condition' => '<string>',
'package_dimensions' => [
],
'product_dimensions' => [
],
'images' => [
[
]
],
'international_ids' => [
],
'attributes' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <x-api-key>"
],
]);
$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://live.nocnocstore.com/api/v2/products"
payload := strings.NewReader("{\n \"sku\": \"<string>\",\n \"brand\": \"<string>\",\n \"available_quantity\": 123,\n \"price\": 123,\n \"currency_code\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"description_language\": \"<string>\",\n \"condition\": \"<string>\",\n \"package_dimensions\": {},\n \"product_dimensions\": {},\n \"images\": [\n {}\n ],\n \"international_ids\": {},\n \"attributes\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-api-key>")
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://live.nocnocstore.com/api/v2/products")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"sku\": \"<string>\",\n \"brand\": \"<string>\",\n \"available_quantity\": 123,\n \"price\": 123,\n \"currency_code\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"description_language\": \"<string>\",\n \"condition\": \"<string>\",\n \"package_dimensions\": {},\n \"product_dimensions\": {},\n \"images\": [\n {}\n ],\n \"international_ids\": {},\n \"attributes\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://live.nocnocstore.com/api/v2/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sku\": \"<string>\",\n \"brand\": \"<string>\",\n \"available_quantity\": 123,\n \"price\": 123,\n \"currency_code\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"description_language\": \"<string>\",\n \"condition\": \"<string>\",\n \"package_dimensions\": {},\n \"product_dimensions\": {},\n \"images\": [\n {}\n ],\n \"international_ids\": {},\n \"attributes\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"sku": "SKU-001",
"brand": "BRAND",
"available_quantity": 20,
"price": 23,
"currency_code": "USD",
"package_dimensions": {
"size": { "unit": "cm", "width": 28, "height": 15, "length": 46 },
"weight": { "value": 3, "unit": "kg" }
},
"product_dimensions": {
"size": { "unit": "cm", "width": 26, "height": 13, "length": 42 },
"weight": { "value": 2, "unit": "kg" }
},
"images": [{ "source_url": "https://example.com/image.jpg" }],
"condition": "NEW",
"title": "Product Title",
"description_language": "en",
"description": "Product description",
"attributes": [
{ "type": "COLOR", "value": "Red" },
{ "type": "SIZE", "value": "Large" }
]
}
{
"code": 400,
"message": "Invalid Request Payload.",
"errors": [
"Sku should be between 1 character minimum and 45 characters maximum.",
"Brand should be between 1 character minimum and 45 characters maximum."
]
}
{
"code": 400,
"message": "Sku already exists."
}
{
"code": 401,
"message": "Unauthorized"
}
Requests go to the live environment — all actions are real.
If you have an Amazon ASIN, use Create product by ASIN instead — it auto-populates product data automatically.
Authorization
string
required
Your seller API key. Provided by your nocnoc account manager.
Body parameters
string
required
Alphanumeric unique code for the product. Between 1 and 45 characters.
string
required
Brand of the product. Between 1 and 45 characters.
integer
required
Stock quantity. Between 0 and 9999.
number
required
Price of the product. Up to 10 integer digits and 2 decimal places.
string
required
Currency code (ISO). Currently only
USD is supported.string
required
Product title to be published.
string
required
Product description to be published.
string
required
Language of the description. Currently only
en is supported.string
Product condition. One of:
NEW, USED, OPEN_BOX, REFURBISHED_A, REFURBISHED_B, REFURBISHED_C, REFURBISHED_D. Defaults to NEW.object
required
Dimensions of the package. Contains
size (object with unit, length, width, height) and weight (object with unit, value). Size units: cm, inch, inches, mm. Weight units: kg, lb, gram, kilogram, pound.object
required
Dimensions of the product itself. Same structure as
package_dimensions.array
required
Array of image objects, each with a
source_url field. Minimum 1, maximum 10.object
International identifiers. Contains
gtin (array of strings — Global Trade Item Number, e.g. EAN, UPC).array
Additional product attributes. Each object has
type (one of: COLOR, SIZE) and value (string).Returns
The created product object with all submitted fields confirmed.Example request
curl -X POST https://live.nocnocstore.com/api/v2/products \
-H "X-Api-Key: YOUR_SELLER_KEY" \
-H "Content-Type: application/json" \
-d '{
"sku": "SKU-001",
"international_ids": { "gtin": ["4901234567890"] },
"brand": "BRAND",
"available_quantity": 20,
"price": 23,
"currency_code": "USD",
"package_dimensions": {
"size": { "unit": "cm", "length": 46, "width": 28, "height": 15 },
"weight": { "unit": "kg", "value": 3 }
},
"product_dimensions": {
"size": { "unit": "cm", "length": 42, "width": 26, "height": 13 },
"weight": { "unit": "kg", "value": 2 }
},
"images": [{ "source_url": "https://example.com/image.jpg" }],
"condition": "NEW",
"title": "Product Title",
"description_language": "en",
"description": "Product description",
"attributes": [
{ "type": "COLOR", "value": "Red" },
{ "type": "SIZE", "value": "Large" }
]
}'
{
"sku": "SKU-001",
"brand": "BRAND",
"available_quantity": 20,
"price": 23,
"currency_code": "USD",
"package_dimensions": {
"size": { "unit": "cm", "width": 28, "height": 15, "length": 46 },
"weight": { "value": 3, "unit": "kg" }
},
"product_dimensions": {
"size": { "unit": "cm", "width": 26, "height": 13, "length": 42 },
"weight": { "value": 2, "unit": "kg" }
},
"images": [{ "source_url": "https://example.com/image.jpg" }],
"condition": "NEW",
"title": "Product Title",
"description_language": "en",
"description": "Product description",
"attributes": [
{ "type": "COLOR", "value": "Red" },
{ "type": "SIZE", "value": "Large" }
]
}
{
"code": 400,
"message": "Invalid Request Payload.",
"errors": [
"Sku should be between 1 character minimum and 45 characters maximum.",
"Brand should be between 1 character minimum and 45 characters maximum."
]
}
{
"code": 400,
"message": "Sku already exists."
}
{
"code": 401,
"message": "Unauthorized"
}
⌘I