curl --request GET \
--url https://api.fabric.inc/v3/categories/{id}/products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fabric.inc/v3/categories/{id}/products"
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/categories/{id}/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://api.fabric.inc/v3/categories/{id}/products",
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/categories/{id}/products"
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/categories/{id}/products")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/categories/{id}/products")
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{
"offset": 5,
"limit": 10,
"count": 100,
"data": {
"id": "617329dfd5288b0011332388",
"products": [
{
"id": "5g7329dfd5288b00113323p7",
"sku": "QWERTTY56DDFFVVV",
"type": "ITEM",
"isActive": true,
"hasDraft": true,
"hasLive": true,
"status": "LIVE",
"attributes": [
{
"id": "227329dfd5288b0011332315",
"name": "Color",
"type": "string",
"isDeleted": false,
"value": "blue",
"isInherited": true
}
],
"localizedProperties": {
"en-US": {
"attributes": [
{
"id": "637329dfd5288b0011332354",
"name": "Color",
"type": "string",
"isDeleted": false,
"value": "blue",
"isInherited": true
}
]
},
"en-IN": {
"attributes": [
{
"id": "8f7329dfd5288b0011332334",
"name": "Colour",
"type": "string",
"isDeleted": false,
"value": "blue",
"isInherited": true
}
]
}
},
"variants": [
{
"id": "967329dfd5288b0011332356"
}
],
"categoryId": "7f7329dfd5288b0011332378",
"createdAt": "2021-09-14T22:10:30.618Z",
"updatedAt": "2021-09-14T22:10:30.618Z"
}
]
}
}{
"message": "Request was invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request"
}
]
}{
"message": "The requester is unauthorized",
"type": "UNAUTHORIZED_ERROR"
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"type": "NOT_FOUND",
"message": "Resource not found"
}{
"type": "PAYLOAD_LIMIT_EXCEEDED_ERROR",
"message": "The payload exceeds maximum configured size"
}{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}Get Products by Category
To ensure correct items are grouped together within a category, it’s important to review them in the context of each category. This endpoint gets a paginated list of products. For each product, you can view its attribute details, localized properties, variant IDs as well as the categoryId. You can refine your search results by specifying offset, and limit. When they’re no specified, you’ll get up to 10 results.
curl --request GET \
--url https://api.fabric.inc/v3/categories/{id}/products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fabric.inc/v3/categories/{id}/products"
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/categories/{id}/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://api.fabric.inc/v3/categories/{id}/products",
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/categories/{id}/products"
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/categories/{id}/products")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/categories/{id}/products")
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{
"offset": 5,
"limit": 10,
"count": 100,
"data": {
"id": "617329dfd5288b0011332388",
"products": [
{
"id": "5g7329dfd5288b00113323p7",
"sku": "QWERTTY56DDFFVVV",
"type": "ITEM",
"isActive": true,
"hasDraft": true,
"hasLive": true,
"status": "LIVE",
"attributes": [
{
"id": "227329dfd5288b0011332315",
"name": "Color",
"type": "string",
"isDeleted": false,
"value": "blue",
"isInherited": true
}
],
"localizedProperties": {
"en-US": {
"attributes": [
{
"id": "637329dfd5288b0011332354",
"name": "Color",
"type": "string",
"isDeleted": false,
"value": "blue",
"isInherited": true
}
]
},
"en-IN": {
"attributes": [
{
"id": "8f7329dfd5288b0011332334",
"name": "Colour",
"type": "string",
"isDeleted": false,
"value": "blue",
"isInherited": true
}
]
}
},
"variants": [
{
"id": "967329dfd5288b0011332356"
}
],
"categoryId": "7f7329dfd5288b0011332378",
"createdAt": "2021-09-14T22:10:30.618Z",
"updatedAt": "2021-09-14T22:10:30.618Z"
}
]
}
}{
"message": "Request was invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request"
}
]
}{
"message": "The requester is unauthorized",
"type": "UNAUTHORIZED_ERROR"
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"type": "NOT_FOUND",
"message": "Resource not found"
}{
"type": "PAYLOAD_LIMIT_EXCEEDED_ERROR",
"message": "The payload exceeds maximum configured size"
}{
"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"
Path Parameters
24-character system-generated category ID
Query Parameters
Number of records to skip before returning records. For example, offset=20, limit=10 returns records 21-30.
0
Maximum number of records per page
10
Comma-separated locale codes of category. The service throws a 400 error if locale isn't supported. Standard locales can be found at https://www.rfc-editor.org/rfc/rfc5646. The recommended way to get the locale is by invoking multi-channel service
"fr-CA, en-US"
Response
OK
Details of products associated to the category
Number of records to skip before returning records. For example, offset=20, limit=10 returns records 21-30.
5
Maximum number of records per page
10
Total number of records in the response
100
Show child attributes
Show child attributes
Was this page helpful?
