curl --request POST \
--url https://api.fabric.inc/v3/product-attribute-groups/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"match": {
"id": {
"op": "IN",
"value": [
"blue"
]
},
"name": {
"op": "IN",
"value": [
"blue"
]
},
"priority": {
"op": "GTE",
"value": 1
},
"attributeIds": {
"op": "IN",
"value": [
"blue"
]
},
"createdAt": {
"op": "RANGE",
"fromValue": "2022-04-20T10:24:36.162Z",
"toValue": "2023-04-20T10:24:36.162Z"
},
"updatedAt": {
"op": "RANGE",
"fromValue": "2022-04-20T10:24:36.162Z",
"toValue": "2023-04-20T10:24:36.162Z"
}
},
"sort": "+name,-attributesCount",
"offset": 2,
"limit": 10
}
'import requests
url = "https://api.fabric.inc/v3/product-attribute-groups/search"
payload = {
"match": {
"id": {
"op": "IN",
"value": ["blue"]
},
"name": {
"op": "IN",
"value": ["blue"]
},
"priority": {
"op": "GTE",
"value": 1
},
"attributeIds": {
"op": "IN",
"value": ["blue"]
},
"createdAt": {
"op": "RANGE",
"fromValue": "2022-04-20T10:24:36.162Z",
"toValue": "2023-04-20T10:24:36.162Z"
},
"updatedAt": {
"op": "RANGE",
"fromValue": "2022-04-20T10:24:36.162Z",
"toValue": "2023-04-20T10:24:36.162Z"
}
},
"sort": "+name,-attributesCount",
"offset": 2,
"limit": 10
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
match: {
id: {op: 'IN', value: ['blue']},
name: {op: 'IN', value: ['blue']},
priority: {op: 'GTE', value: 1},
attributeIds: {op: 'IN', value: ['blue']},
createdAt: {
op: 'RANGE',
fromValue: '2022-04-20T10:24:36.162Z',
toValue: '2023-04-20T10:24:36.162Z'
},
updatedAt: {
op: 'RANGE',
fromValue: '2022-04-20T10:24:36.162Z',
toValue: '2023-04-20T10:24:36.162Z'
}
},
sort: '+name,-attributesCount',
offset: 2,
limit: 10
})
};
fetch('https://api.fabric.inc/v3/product-attribute-groups/search', 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/product-attribute-groups/search",
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([
'match' => [
'id' => [
'op' => 'IN',
'value' => [
'blue'
]
],
'name' => [
'op' => 'IN',
'value' => [
'blue'
]
],
'priority' => [
'op' => 'GTE',
'value' => 1
],
'attributeIds' => [
'op' => 'IN',
'value' => [
'blue'
]
],
'createdAt' => [
'op' => 'RANGE',
'fromValue' => '2022-04-20T10:24:36.162Z',
'toValue' => '2023-04-20T10:24:36.162Z'
],
'updatedAt' => [
'op' => 'RANGE',
'fromValue' => '2022-04-20T10:24:36.162Z',
'toValue' => '2023-04-20T10:24:36.162Z'
]
],
'sort' => '+name,-attributesCount',
'offset' => 2,
'limit' => 10
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.fabric.inc/v3/product-attribute-groups/search"
payload := strings.NewReader("{\n \"match\": {\n \"id\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"name\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"priority\": {\n \"op\": \"GTE\",\n \"value\": 1\n },\n \"attributeIds\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"createdAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n },\n \"updatedAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n }\n },\n \"sort\": \"+name,-attributesCount\",\n \"offset\": 2,\n \"limit\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.fabric.inc/v3/product-attribute-groups/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"match\": {\n \"id\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"name\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"priority\": {\n \"op\": \"GTE\",\n \"value\": 1\n },\n \"attributeIds\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"createdAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n },\n \"updatedAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n }\n },\n \"sort\": \"+name,-attributesCount\",\n \"offset\": 2,\n \"limit\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/product-attribute-groups/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"match\": {\n \"id\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"name\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"priority\": {\n \"op\": \"GTE\",\n \"value\": 1\n },\n \"attributeIds\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"createdAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n },\n \"updatedAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n }\n },\n \"sort\": \"+name,-attributesCount\",\n \"offset\": 2,\n \"limit\": 10\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "59328bf0b5f328bf0b5f3288",
"name": "Dimensions",
"description": "Dimensions of a product",
"priority": 1,
"attributes": [
{
"attributeId": "33328bf0b5f328bf0b5f3288",
"name": "color",
"type": "TEXT",
"localizedProperties": {
"en-US": {
"name": "color"
},
"en-IN": {
"name": "colour"
}
},
"isLocalizable": true,
"isReadOnly": true
}
],
"attributeCount": 20,
"updatedBy": "test@email.com",
"createdAt": "2021-04-20T10:24:36.162Z",
"updatedAt": "2021-04-20T10:24:36.162Z"
}
],
"offset": 2,
"limit": 10,
"count": 1000
}{
"message": "Request is invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request. Check your parameters or request body."
}
]
}{
"message": "The requester is unauthorized",
"type": "UNAUTHORIZED_ERROR"
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"type": "PAYLOAD_LIMIT_EXCEEDED_ERROR",
"message": "Payload exceeds maximum configured size"
}{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}Find Attribute Groups
Searches for attribute groups that match the criteria specified in the request body. Attribute groups are reusable sets of attributes that can be assigned to products or categories.
curl --request POST \
--url https://api.fabric.inc/v3/product-attribute-groups/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"match": {
"id": {
"op": "IN",
"value": [
"blue"
]
},
"name": {
"op": "IN",
"value": [
"blue"
]
},
"priority": {
"op": "GTE",
"value": 1
},
"attributeIds": {
"op": "IN",
"value": [
"blue"
]
},
"createdAt": {
"op": "RANGE",
"fromValue": "2022-04-20T10:24:36.162Z",
"toValue": "2023-04-20T10:24:36.162Z"
},
"updatedAt": {
"op": "RANGE",
"fromValue": "2022-04-20T10:24:36.162Z",
"toValue": "2023-04-20T10:24:36.162Z"
}
},
"sort": "+name,-attributesCount",
"offset": 2,
"limit": 10
}
'import requests
url = "https://api.fabric.inc/v3/product-attribute-groups/search"
payload = {
"match": {
"id": {
"op": "IN",
"value": ["blue"]
},
"name": {
"op": "IN",
"value": ["blue"]
},
"priority": {
"op": "GTE",
"value": 1
},
"attributeIds": {
"op": "IN",
"value": ["blue"]
},
"createdAt": {
"op": "RANGE",
"fromValue": "2022-04-20T10:24:36.162Z",
"toValue": "2023-04-20T10:24:36.162Z"
},
"updatedAt": {
"op": "RANGE",
"fromValue": "2022-04-20T10:24:36.162Z",
"toValue": "2023-04-20T10:24:36.162Z"
}
},
"sort": "+name,-attributesCount",
"offset": 2,
"limit": 10
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
match: {
id: {op: 'IN', value: ['blue']},
name: {op: 'IN', value: ['blue']},
priority: {op: 'GTE', value: 1},
attributeIds: {op: 'IN', value: ['blue']},
createdAt: {
op: 'RANGE',
fromValue: '2022-04-20T10:24:36.162Z',
toValue: '2023-04-20T10:24:36.162Z'
},
updatedAt: {
op: 'RANGE',
fromValue: '2022-04-20T10:24:36.162Z',
toValue: '2023-04-20T10:24:36.162Z'
}
},
sort: '+name,-attributesCount',
offset: 2,
limit: 10
})
};
fetch('https://api.fabric.inc/v3/product-attribute-groups/search', 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/product-attribute-groups/search",
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([
'match' => [
'id' => [
'op' => 'IN',
'value' => [
'blue'
]
],
'name' => [
'op' => 'IN',
'value' => [
'blue'
]
],
'priority' => [
'op' => 'GTE',
'value' => 1
],
'attributeIds' => [
'op' => 'IN',
'value' => [
'blue'
]
],
'createdAt' => [
'op' => 'RANGE',
'fromValue' => '2022-04-20T10:24:36.162Z',
'toValue' => '2023-04-20T10:24:36.162Z'
],
'updatedAt' => [
'op' => 'RANGE',
'fromValue' => '2022-04-20T10:24:36.162Z',
'toValue' => '2023-04-20T10:24:36.162Z'
]
],
'sort' => '+name,-attributesCount',
'offset' => 2,
'limit' => 10
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.fabric.inc/v3/product-attribute-groups/search"
payload := strings.NewReader("{\n \"match\": {\n \"id\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"name\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"priority\": {\n \"op\": \"GTE\",\n \"value\": 1\n },\n \"attributeIds\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"createdAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n },\n \"updatedAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n }\n },\n \"sort\": \"+name,-attributesCount\",\n \"offset\": 2,\n \"limit\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.fabric.inc/v3/product-attribute-groups/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"match\": {\n \"id\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"name\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"priority\": {\n \"op\": \"GTE\",\n \"value\": 1\n },\n \"attributeIds\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"createdAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n },\n \"updatedAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n }\n },\n \"sort\": \"+name,-attributesCount\",\n \"offset\": 2,\n \"limit\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/product-attribute-groups/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"match\": {\n \"id\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"name\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"priority\": {\n \"op\": \"GTE\",\n \"value\": 1\n },\n \"attributeIds\": {\n \"op\": \"IN\",\n \"value\": [\n \"blue\"\n ]\n },\n \"createdAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n },\n \"updatedAt\": {\n \"op\": \"RANGE\",\n \"fromValue\": \"2022-04-20T10:24:36.162Z\",\n \"toValue\": \"2023-04-20T10:24:36.162Z\"\n }\n },\n \"sort\": \"+name,-attributesCount\",\n \"offset\": 2,\n \"limit\": 10\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "59328bf0b5f328bf0b5f3288",
"name": "Dimensions",
"description": "Dimensions of a product",
"priority": 1,
"attributes": [
{
"attributeId": "33328bf0b5f328bf0b5f3288",
"name": "color",
"type": "TEXT",
"localizedProperties": {
"en-US": {
"name": "color"
},
"en-IN": {
"name": "colour"
}
},
"isLocalizable": true,
"isReadOnly": true
}
],
"attributeCount": 20,
"updatedBy": "test@email.com",
"createdAt": "2021-04-20T10:24:36.162Z",
"updatedAt": "2021-04-20T10:24:36.162Z"
}
],
"offset": 2,
"limit": 10,
"count": 1000
}{
"message": "Request is invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request. Check your parameters or request body."
}
]
}{
"message": "The requester is unauthorized",
"type": "UNAUTHORIZED_ERROR"
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"type": "PAYLOAD_LIMIT_EXCEEDED_ERROR",
"message": "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"
Body
Search criteria for attribute group
Specification for matching attributes
Show child attributes
Show child attributes
Criteria to sort the response. Currently, sorting is only supported on createdAt, updatedAt, name, attributesCount and priority. - refers to descending while + refers to ascending order
"+name,-attributesCount"
Number of records to skip before returning records. For example, offset=20, limit=10 returns records 21-30.
2
Maximum number of records per page
10
Response
OK
Details of attribute groups
Show child attributes
Show child attributes
Number of records to skip before returning records. For example, offset=20, limit=10 returns records 21-30.
2
Maximum number of records per page
10
Total number of records in the search results
1000
Was this page helpful?
