cURL
curl --request POST \
--url https://api-v2.production.higg.org/pm-api/v1/product/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-developer-request-token: <api-key>' \
--data '
{
"name": "<string>",
"productCategory": {},
"modelNumber": "<string>",
"baseMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"customMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"packageMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"trimMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"certifications": [
"<string>"
],
"barcodes": [
"<string>"
]
}
'import requests
url = "https://api-v2.production.higg.org/pm-api/v1/product/create"
payload = {
"name": "<string>",
"productCategory": {},
"modelNumber": "<string>",
"baseMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"customMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"packageMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"trimMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"certifications": ["<string>"],
"barcodes": ["<string>"]
}
headers = {
"x-api-key": "<api-key>",
"x-developer-request-token": "<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': '<api-key>',
'x-developer-request-token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
productCategory: {},
modelNumber: '<string>',
baseMaterials: [{_id: '<string>', amount: 123, partName: '<string>'}],
customMaterials: [{_id: '<string>', amount: 123, partName: '<string>'}],
packageMaterials: [{_id: '<string>', amount: 123, partName: '<string>'}],
trimMaterials: [{_id: '<string>', amount: 123, partName: '<string>'}],
certifications: ['<string>'],
barcodes: ['<string>']
})
};
fetch('https://api-v2.production.higg.org/pm-api/v1/product/create', 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-v2.production.higg.org/pm-api/v1/product/create",
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([
'name' => '<string>',
'productCategory' => [
],
'modelNumber' => '<string>',
'baseMaterials' => [
[
'_id' => '<string>',
'amount' => 123,
'partName' => '<string>'
]
],
'customMaterials' => [
[
'_id' => '<string>',
'amount' => 123,
'partName' => '<string>'
]
],
'packageMaterials' => [
[
'_id' => '<string>',
'amount' => 123,
'partName' => '<string>'
]
],
'trimMaterials' => [
[
'_id' => '<string>',
'amount' => 123,
'partName' => '<string>'
]
],
'certifications' => [
'<string>'
],
'barcodes' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-developer-request-token: <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://api-v2.production.higg.org/pm-api/v1/product/create"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"productCategory\": {},\n \"modelNumber\": \"<string>\",\n \"baseMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"customMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"packageMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"trimMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"certifications\": [\n \"<string>\"\n ],\n \"barcodes\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-developer-request-token", "<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://api-v2.production.higg.org/pm-api/v1/product/create")
.header("x-api-key", "<api-key>")
.header("x-developer-request-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"productCategory\": {},\n \"modelNumber\": \"<string>\",\n \"baseMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"customMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"packageMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"trimMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"certifications\": [\n \"<string>\"\n ],\n \"barcodes\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-v2.production.higg.org/pm-api/v1/product/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["x-developer-request-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"productCategory\": {},\n \"modelNumber\": \"<string>\",\n \"baseMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"customMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"packageMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"trimMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"certifications\": [\n \"<string>\"\n ],\n \"barcodes\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"scores": {},
"billOfMaterialScores": {},
"certifications": [
{
"_id": "<string>",
"assertionAuthorityName": "<string>",
"assertionStandardName": "<string>",
"certificateName": "<string>",
"assertionId": "<string>",
"assertionStandardId": "<string>",
"dateExpires": 123,
"proofBody": "<string>",
"dateIssued": 123,
"certificationFiles": [
"<string>"
]
}
],
"productNetWeight": 123,
"bomNetWeight": 123,
"scoresTotalAltProductCare": {},
"logisticsImpacts": {},
"packagingImpacts": {},
"productCareImpacts": {},
"endOfUseImpacts": {},
"retailImpacts": {},
"dosImpacts": {},
"totalPerUseImpacts": {},
"materials": [
{
"scores": {},
"baseScores": {}
}
]
}Product Module
PM Create Product
POST
/
create
cURL
curl --request POST \
--url https://api-v2.production.higg.org/pm-api/v1/product/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-developer-request-token: <api-key>' \
--data '
{
"name": "<string>",
"productCategory": {},
"modelNumber": "<string>",
"baseMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"customMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"packageMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"trimMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"certifications": [
"<string>"
],
"barcodes": [
"<string>"
]
}
'import requests
url = "https://api-v2.production.higg.org/pm-api/v1/product/create"
payload = {
"name": "<string>",
"productCategory": {},
"modelNumber": "<string>",
"baseMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"customMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"packageMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"trimMaterials": [
{
"_id": "<string>",
"amount": 123,
"partName": "<string>"
}
],
"certifications": ["<string>"],
"barcodes": ["<string>"]
}
headers = {
"x-api-key": "<api-key>",
"x-developer-request-token": "<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': '<api-key>',
'x-developer-request-token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
productCategory: {},
modelNumber: '<string>',
baseMaterials: [{_id: '<string>', amount: 123, partName: '<string>'}],
customMaterials: [{_id: '<string>', amount: 123, partName: '<string>'}],
packageMaterials: [{_id: '<string>', amount: 123, partName: '<string>'}],
trimMaterials: [{_id: '<string>', amount: 123, partName: '<string>'}],
certifications: ['<string>'],
barcodes: ['<string>']
})
};
fetch('https://api-v2.production.higg.org/pm-api/v1/product/create', 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-v2.production.higg.org/pm-api/v1/product/create",
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([
'name' => '<string>',
'productCategory' => [
],
'modelNumber' => '<string>',
'baseMaterials' => [
[
'_id' => '<string>',
'amount' => 123,
'partName' => '<string>'
]
],
'customMaterials' => [
[
'_id' => '<string>',
'amount' => 123,
'partName' => '<string>'
]
],
'packageMaterials' => [
[
'_id' => '<string>',
'amount' => 123,
'partName' => '<string>'
]
],
'trimMaterials' => [
[
'_id' => '<string>',
'amount' => 123,
'partName' => '<string>'
]
],
'certifications' => [
'<string>'
],
'barcodes' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-developer-request-token: <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://api-v2.production.higg.org/pm-api/v1/product/create"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"productCategory\": {},\n \"modelNumber\": \"<string>\",\n \"baseMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"customMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"packageMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"trimMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"certifications\": [\n \"<string>\"\n ],\n \"barcodes\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-developer-request-token", "<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://api-v2.production.higg.org/pm-api/v1/product/create")
.header("x-api-key", "<api-key>")
.header("x-developer-request-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"productCategory\": {},\n \"modelNumber\": \"<string>\",\n \"baseMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"customMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"packageMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"trimMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"certifications\": [\n \"<string>\"\n ],\n \"barcodes\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-v2.production.higg.org/pm-api/v1/product/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["x-developer-request-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"productCategory\": {},\n \"modelNumber\": \"<string>\",\n \"baseMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"customMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"packageMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"trimMaterials\": [\n {\n \"_id\": \"<string>\",\n \"amount\": 123,\n \"partName\": \"<string>\"\n }\n ],\n \"certifications\": [\n \"<string>\"\n ],\n \"barcodes\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"scores": {},
"billOfMaterialScores": {},
"certifications": [
{
"_id": "<string>",
"assertionAuthorityName": "<string>",
"assertionStandardName": "<string>",
"certificateName": "<string>",
"assertionId": "<string>",
"assertionStandardId": "<string>",
"dateExpires": 123,
"proofBody": "<string>",
"dateIssued": 123,
"certificationFiles": [
"<string>"
]
}
],
"productNetWeight": 123,
"bomNetWeight": 123,
"scoresTotalAltProductCare": {},
"logisticsImpacts": {},
"packagingImpacts": {},
"productCareImpacts": {},
"endOfUseImpacts": {},
"retailImpacts": {},
"dosImpacts": {},
"totalPerUseImpacts": {},
"materials": [
{
"scores": {},
"baseScores": {}
}
]
}Introduction
The PM API provides functionality for users to create products automatically in Higg Product Module. The product is created using the system defaults for all aspects of the product except the bill of materials. Once the product is created via the API, the user can optionally go into the Product Module tool and manually set additional information about the product. See PM Data Dictionary for details about the parameters.Create Product
The product requires a name, product type, and product category. The GEThttps://api-v2.production.higg.org/pm-api/product/category endpoint returns a list of the product types and associated categories.
Optionally a product style/model number can be set—this field can be used to hold PLM ids, though note the user can edit this field directly in the Product Module interface.
Create
{
"name": "test API aug 20",
"productType": "Apparel",
"productCategory": "Dress",
"modelNumber": "test5"
}
Add Product Bill of Materials
The PM API can also be used to create a bill of materials for the product using example, custom, acquired, trims and packaging from MSI. The MSI id, amount of the material, and unit of measure are sent via the API to create the bill of material. Optionally, the user can also send a part name for each material. Note that trims and packaging are always sent as “units” for unit of measure. Available units for materials are: “kilograms” “grams” “milligram” “pound” “ounce” Additionally, if the user set yields in MSI for the material, those user-defined material yields will be available.Create BoM
{
"name": "test BoM 201",
"productType": "Apparel",
"productCategory": "Dress",
"modelNumber": "test5"
"packageMaterials":[{
"_id": "samplepackage:PK012",
"partName":"XYZ Package",
"amount": 1,
"measureUnit": "units"
}],
"trimMaterials":[{
"_id": "sampletrim:TR001",
"amount": 1,
"measureUnit": "units"
}],
"baseMaterials":[{
"_id": "TX0001",
"amount": 1,
"measureUnit": "kilograms"
}],
"customMaterials":[{
"_id": "material:d68657bf-5c3e-472d-a4da-10c8d8e3614b",
"amount": 1,
"measureUnit": "kilograms"
}]
}
Body
application/json
Available options:
Apparel, Footwear, HomeTextiles, Other Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
200 - application/json
Ok
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I

