curl --request GET \
--url https://api.fabric.inc/v3/published-products/skus \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fabric.inc/v3/published-products/skus"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fabric.inc/v3/published-products/skus', 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.fabric.inc/v3/published-products/skus",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fabric.inc/v3/published-products/skus"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fabric.inc/v3/published-products/skus")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/published-products/skus")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"sku": "XP-123345",
"id": "5f7329dfd5288b0011332366",
"itemId": 1682313863,
"type": "ITEM",
"categoryId": "34e7329dfd5288b0011332366",
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"variants": [
{
"sku": "XP-123345",
"id": "5f7329dfd5288b0011332366",
"itemId": 1682313863,
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
]
}
],
"bundleProducts": [
{
"quantity": 2,
"sku": "XP-123345",
"id": "5f7329dfd5288b0011332366",
"itemId": 1682313863,
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
]
}
],
"categories": [
{
"id": "5f7329dfd5288b0011332366",
"type": "PRIMARY",
"isRoot": true,
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
]
}
],
"collections": [
{
"name": "Demo Name",
"id": "5f7329dfd5288b0011332366",
"hierarchy": [
{
"id": "5f7329dfd5288b0011332366",
"type": "PRIMARY",
"isRoot": true,
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
]
}
]
}
]
}
],
"offset": 10,
"limit": 10,
"count": 100
}{
"message": "Request was invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request. Unable to find/create product"
}
]
}{
"message": "Request is unauthorized",
"type": "Unauthorized request",
"errors": [
{
"type": "UNAUTHORIZED_ERROR",
"message": "The requester is unauthorized"
}
]
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"message": "Payload exceeds maximum configured size",
"type": "Payload limit exceeded",
"errors": [
{
"type": "PAYLOAD_LIMIT_EXCEEDED_ERROR",
"message": "Payload exceeds maximum configured size"
}
]
}{
"message": "Internal Server Error",
"type": "Internal Server Error",
"errors": [
{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}
]
}Get Multiple Published Products by SKUs
Shoppers may want to view the products they’ve already identified or bookmarked, or you want to promote a particular set of products as part of promotions. This endpoint gets multiple published products based on skus (comma-separated values) and is useful to show product list (up to 25 products) on your Storefront. Note:
1. Using the examples you can see separate response for items, variants, and bundles.
2. If you don’t have product SKU, use the corresponding item ID-based or product ID-based endpoints.
curl --request GET \
--url https://api.fabric.inc/v3/published-products/skus \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fabric.inc/v3/published-products/skus"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fabric.inc/v3/published-products/skus', 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.fabric.inc/v3/published-products/skus",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fabric.inc/v3/published-products/skus"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fabric.inc/v3/published-products/skus")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/published-products/skus")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"sku": "XP-123345",
"id": "5f7329dfd5288b0011332366",
"itemId": 1682313863,
"type": "ITEM",
"categoryId": "34e7329dfd5288b0011332366",
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"variants": [
{
"sku": "XP-123345",
"id": "5f7329dfd5288b0011332366",
"itemId": 1682313863,
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
]
}
],
"bundleProducts": [
{
"quantity": 2,
"sku": "XP-123345",
"id": "5f7329dfd5288b0011332366",
"itemId": 1682313863,
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
]
}
],
"categories": [
{
"id": "5f7329dfd5288b0011332366",
"type": "PRIMARY",
"isRoot": true,
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
]
}
],
"collections": [
{
"name": "Demo Name",
"id": "5f7329dfd5288b0011332366",
"hierarchy": [
{
"id": "5f7329dfd5288b0011332366",
"type": "PRIMARY",
"isRoot": true,
"localizedProperties": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
],
"attributes": [
{
"id": "5f7329dfd5288b0011332322",
"name": "color",
"value": "blue",
"type": "string"
}
]
}
]
}
]
}
],
"offset": 10,
"limit": 10,
"count": 100
}{
"message": "Request was invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request. Unable to find/create product"
}
]
}{
"message": "Request is unauthorized",
"type": "Unauthorized request",
"errors": [
{
"type": "UNAUTHORIZED_ERROR",
"message": "The requester is unauthorized"
}
]
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"message": "Payload exceeds maximum configured size",
"type": "Payload limit exceeded",
"errors": [
{
"type": "PAYLOAD_LIMIT_EXCEEDED_ERROR",
"message": "Payload exceeds maximum configured size"
}
]
}{
"message": "Internal Server Error",
"type": "Internal Server Error",
"errors": [
{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}
]
}Authorizations
S2S access token (JWT) from fabric Identity service (during Login)
Headers
A header used by fabric to identify the tenant making the request. You must include tenant id in the authentication header for an API request to access any of fabric’s endpoints. You can retrieve the tenant id , which is also called account id, from Copilot. This header is required.
"517fa9dfd42d8b00g1o3k312"
Unique request ID
"263e731c-45c8-11ed-b878-0242ac120002"
Query Parameters
Comma-separated product SKUs
true: Response shouldn't include categories or hierarchy details
false: Response should include categories or hierarchy detail Note: Default value is false
true: Response shouldn't include categories or hierarchy details
false: Response should include categories or hierarchy details Note: Default value is false
true: Response shouldn't include collection or hierarchy details
false: Response should include collection or hierarchy details Note: Default value is false
true: Response shouldn't include products of the bundle
false: Response should include products of the bundle Note: Default value is false
Locale name
Maximum number of records per page
20
Number of records to skip before returning records. For example, offset=20, limit=10 returns records 21-30.
2
Response
OK
Show child attributes
Show child attributes
Number of records to skip before returning records. For example, offset=20, limit=10 returns records 21-30.
10
Maximum number of records per page
10
Total number of records in the response
100
Was this page helpful?
