curl --request GET \
--url https://live.copilot.fabric.inc/api-category/v1/category/search \
--header 'Authorization: Bearer <token>' \
--header 'x-site-context: <x-site-context>'import requests
url = "https://live.copilot.fabric.inc/api-category/v1/category/search"
headers = {
"x-site-context": "<x-site-context>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-site-context': '<x-site-context>', Authorization: 'Bearer <token>'}
};
fetch('https://live.copilot.fabric.inc/api-category/v1/category/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://live.copilot.fabric.inc/api-category/v1/category/search",
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>",
"x-site-context: <x-site-context>"
],
]);
$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://live.copilot.fabric.inc/api-category/v1/category/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-site-context", "<x-site-context>")
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://live.copilot.fabric.inc/api-category/v1/category/search")
.header("x-site-context", "<x-site-context>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://live.copilot.fabric.inc/api-category/v1/category/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-site-context"] = '<x-site-context>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"totalSize": 100,
"pageSize": 10,
"pages": 10,
"categories": [
{
"id": "6196b45b5cb04b7ce167cb46",
"nodeId": 16,
"name": "PCs",
"hierarchy": "ALTERNATE",
"isActive": true,
"breadcrumbs": [
{
"id": "6196b44a5cb04b7ce167cb34",
"nodeId": 10,
"name": "Computers",
"level": 0,
"hierarchy": "ALTERNATE",
"isActive": true,
"createdOn": "2022-03-09T23:37:54.086Z",
"modifiedOn": "2022-03-09T23:37:54.086Z"
}
],
"attributes": [
{
"id": "619a8ba6f1875f6dbcaf0521",
"name": "notes",
"description": "Notes for this particular category.",
"type": "TEXT",
"value": "Unable to fulfill demand."
}
],
"children": [
{
"id": "619973877a22c466eee93219",
"name": "Apple",
"breadcrumbs": [
{
"id": "6196b44a5cb04b7ce167cb34",
"nodeId": 10,
"name": "Computers",
"level": 0,
"hierarchy": "ALTERNATE",
"isActive": true,
"createdOn": "2022-03-09T23:37:54.086Z",
"modifiedOn": "2022-03-09T23:37:54.086Z"
}
],
"attributes": [
{
"id": "619a8ba6f1875f6dbcaf0521",
"name": "notes",
"description": "Notes for this particular category.",
"type": "TEXT",
"value": "Unable to fulfill demand."
}
],
"children": "<array>"
}
],
"createdOn": "2022-03-09T23:37:54.086Z",
"modifiedOn": "2022-03-09T23:37:54.086Z"
}
]
}{
"code": 400,
"message": "Client error"
}{
"code": 500,
"message": "An internal error occurred. If the issue persists please contact support@fabric.inc."
}Find categories
Finds categories, by keywords, category identifiers, type, or status.
Note:
1) Categories and children categories must already exist in the system.
2) When query parameters are omitted, this endpoint returns a paginated response with all the categories. Using size and page, you can narrow down the search results.
3) GET /v1/category (Store admin context) or Algolia search (Shopper context) is strongly recommended over this endpoint.
curl --request GET \
--url https://live.copilot.fabric.inc/api-category/v1/category/search \
--header 'Authorization: Bearer <token>' \
--header 'x-site-context: <x-site-context>'import requests
url = "https://live.copilot.fabric.inc/api-category/v1/category/search"
headers = {
"x-site-context": "<x-site-context>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-site-context': '<x-site-context>', Authorization: 'Bearer <token>'}
};
fetch('https://live.copilot.fabric.inc/api-category/v1/category/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://live.copilot.fabric.inc/api-category/v1/category/search",
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>",
"x-site-context: <x-site-context>"
],
]);
$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://live.copilot.fabric.inc/api-category/v1/category/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-site-context", "<x-site-context>")
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://live.copilot.fabric.inc/api-category/v1/category/search")
.header("x-site-context", "<x-site-context>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://live.copilot.fabric.inc/api-category/v1/category/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-site-context"] = '<x-site-context>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"totalSize": 100,
"pageSize": 10,
"pages": 10,
"categories": [
{
"id": "6196b45b5cb04b7ce167cb46",
"nodeId": 16,
"name": "PCs",
"hierarchy": "ALTERNATE",
"isActive": true,
"breadcrumbs": [
{
"id": "6196b44a5cb04b7ce167cb34",
"nodeId": 10,
"name": "Computers",
"level": 0,
"hierarchy": "ALTERNATE",
"isActive": true,
"createdOn": "2022-03-09T23:37:54.086Z",
"modifiedOn": "2022-03-09T23:37:54.086Z"
}
],
"attributes": [
{
"id": "619a8ba6f1875f6dbcaf0521",
"name": "notes",
"description": "Notes for this particular category.",
"type": "TEXT",
"value": "Unable to fulfill demand."
}
],
"children": [
{
"id": "619973877a22c466eee93219",
"name": "Apple",
"breadcrumbs": [
{
"id": "6196b44a5cb04b7ce167cb34",
"nodeId": 10,
"name": "Computers",
"level": 0,
"hierarchy": "ALTERNATE",
"isActive": true,
"createdOn": "2022-03-09T23:37:54.086Z",
"modifiedOn": "2022-03-09T23:37:54.086Z"
}
],
"attributes": [
{
"id": "619a8ba6f1875f6dbcaf0521",
"name": "notes",
"description": "Notes for this particular category.",
"type": "TEXT",
"value": "Unable to fulfill demand."
}
],
"children": "<array>"
}
],
"createdOn": "2022-03-09T23:37:54.086Z",
"modifiedOn": "2022-03-09T23:37:54.086Z"
}
]
}{
"code": 400,
"message": "Client error"
}{
"code": 500,
"message": "An internal error occurred. If the issue persists please contact support@fabric.inc."
}Authorizations
S2S access token (JWT) from fabric Identity service (during Login)
Headers
The x-site-context header is a JSON object that contains information about the source you wish to pull from. The mandatory account is the 24 character identifier found in Copilot. The channel (Sales channel ID), stage (environment name), and date attributes can be used to further narrow the scope of your data source.
"{\"date\": \"2023-01-01T00:00:00.000Z\", \"channel\": 12, \"account\": \"1234abcd5678efgh9ijklmno\",\"stage\":\"production\"}"
Query Parameters
Keywords to search for categories. The response is paginated. Using query parameters page and size, you can narrow down the search results.
A 24-characters system-generated category IDs. If ids and nodeIds are omitted, this endpoint returns a paginated response. Using query parameters page and size, you can narrow down the search results.
Numeric category IDs. If ids and nodeIds are omitted, this endpoint returns a paginated response. Using query parameters page and size, you can narrow down the search results.
Category type.
Note: If omitted, you will get a paginated response with ALL categories. Using query parameters page and size, you can narrow down the search results.
PRIMARY, ALTERNATE, ALL "ALL"
Category status. If omitted, you will get a paginated response of categories in ACTIVE status. Using the query parameters page and size, you can narrow down the search results.
Note: When type is Primary, status must be Active. Inactive status is not applicable for Primary category.
ACTIVE, INACTIVE, ALL "ALL"
Page number to be retrieved.
Note:
1) Applicable only in a paginated response.
2) Always paired with size
3) No default value set. Unless a value is specified, endpoint returns an error.
Number of records per page
Note:
1) Always paired with page.
2) Applicable only in a paginated response.
3) No default value set. Unless a value is specified, endpoint returns an error.
Was this page helpful?
