curl --request GET \
--url https://api.fabric.inc/v3/categories/{id}/attribute-groups \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fabric.inc/v3/categories/{id}/attribute-groups"
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}/attribute-groups', 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}/attribute-groups",
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}/attribute-groups"
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}/attribute-groups")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/categories/{id}/attribute-groups")
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": [
{
"id": "78184766610c0e32a86d8757",
"name": "Dimensions",
"description": "Product dimensions",
"priority": 1,
"attributes": [
{
"attributeId": "617329dfd5288b0011332388",
"name": "color",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"type": "TEXT",
"isReadOnly": true,
"target": "PRODUCT",
"validation": {
"isMandatory": true,
"isManualOverwrite": true,
"formula": "(async () => await attribute('id') *10)()",
"customValidationFormula": "(async () => await attribute('id') > 1)()",
"dateFormat": "MM-DD-YYYY",
"isDecimal": true,
"min": 100,
"max": 100,
"startWith": 1,
"increment": 10,
"subType": "SINGLE",
"acceptedValues": [
"test1"
],
"localizedAcceptedValues": {
"en-US": [
"Demo1",
"Demo2",
"Demo3"
]
}
}
}
]
}
]
}{
"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 Attribute Groups of a Category
Attribute groups are a collection of attributes that can be assigned to an item or a category. For example, an Electronics category may have Dimensions as one of the attribute groups, with length, width, and height as individual attributes. This endpoint gets all attribute groups for the given category. For each attribute group, you can view its basic details such as ID, name, and priority as well as attribute details including validation rules, localized versions, and more
curl --request GET \
--url https://api.fabric.inc/v3/categories/{id}/attribute-groups \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fabric.inc/v3/categories/{id}/attribute-groups"
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}/attribute-groups', 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}/attribute-groups",
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}/attribute-groups"
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}/attribute-groups")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/categories/{id}/attribute-groups")
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": [
{
"id": "78184766610c0e32a86d8757",
"name": "Dimensions",
"description": "Product dimensions",
"priority": 1,
"attributes": [
{
"attributeId": "617329dfd5288b0011332388",
"name": "color",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"type": "TEXT",
"isReadOnly": true,
"target": "PRODUCT",
"validation": {
"isMandatory": true,
"isManualOverwrite": true,
"formula": "(async () => await attribute('id') *10)()",
"customValidationFormula": "(async () => await attribute('id') > 1)()",
"dateFormat": "MM-DD-YYYY",
"isDecimal": true,
"min": 100,
"max": 100,
"startWith": 1,
"increment": 10,
"subType": "SINGLE",
"acceptedValues": [
"test1"
],
"localizedAcceptedValues": {
"en-US": [
"Demo1",
"Demo2",
"Demo3"
]
}
}
}
]
}
]
}{
"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
Response
OK
Attribute details
Attribute groups
Show child attributes
Show child attributes
Was this page helpful?
