curl --request POST \
--url https://api.fabric.inc/v3/catalog-connector-templates/actions/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"type": "ITEM",
"formatType": "jsonl"
}
'import requests
url = "https://api.fabric.inc/v3/catalog-connector-templates/actions/generate"
payload = {
"type": "ITEM",
"formatType": "jsonl"
}
headers = {
"x-fabric-tenant-id": "<x-fabric-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({type: 'ITEM', formatType: 'jsonl'})
};
fetch('https://api.fabric.inc/v3/catalog-connector-templates/actions/generate', 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/catalog-connector-templates/actions/generate",
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([
'type' => 'ITEM',
'formatType' => 'jsonl'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-fabric-tenant-id: <x-fabric-tenant-id>"
],
]);
$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/catalog-connector-templates/actions/generate"
payload := strings.NewReader("{\n \"type\": \"ITEM\",\n \"formatType\": \"jsonl\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
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/catalog-connector-templates/actions/generate")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"ITEM\",\n \"formatType\": \"jsonl\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/catalog-connector-templates/actions/generate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"ITEM\",\n \"formatType\": \"jsonl\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Request is invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request. Unable to find/create product"
}
]
}{
"type": "UNAUTHORIZED_ERROR",
"message": "Requester is unauthorized"
}{
"type": "REQUEST_DENIED",
"message": "User does not have the required permission"
}{
"type": "NOT_FOUND",
"message": "Resource not found"
}{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}Retrieve an import template
Use this endpoint to retrieve the product import template for Catalog Connector in either CSV or JSONL format, based on your preferred data handling method. You can open CSV template in applications, such as Excel or Google Sheets and JSONL template in text editors compatible with JSONL, such as Visual Studio Code. After filling in product data, save the template file with a unique name on your local system.
curl --request POST \
--url https://api.fabric.inc/v3/catalog-connector-templates/actions/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"type": "ITEM",
"formatType": "jsonl"
}
'import requests
url = "https://api.fabric.inc/v3/catalog-connector-templates/actions/generate"
payload = {
"type": "ITEM",
"formatType": "jsonl"
}
headers = {
"x-fabric-tenant-id": "<x-fabric-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({type: 'ITEM', formatType: 'jsonl'})
};
fetch('https://api.fabric.inc/v3/catalog-connector-templates/actions/generate', 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/catalog-connector-templates/actions/generate",
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([
'type' => 'ITEM',
'formatType' => 'jsonl'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-fabric-tenant-id: <x-fabric-tenant-id>"
],
]);
$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/catalog-connector-templates/actions/generate"
payload := strings.NewReader("{\n \"type\": \"ITEM\",\n \"formatType\": \"jsonl\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
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/catalog-connector-templates/actions/generate")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"ITEM\",\n \"formatType\": \"jsonl\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/catalog-connector-templates/actions/generate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"ITEM\",\n \"formatType\": \"jsonl\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Request is invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request. Unable to find/create product"
}
]
}{
"type": "UNAUTHORIZED_ERROR",
"message": "Requester is unauthorized"
}{
"type": "REQUEST_DENIED",
"message": "User does not have the required permission"
}{
"type": "NOT_FOUND",
"message": "Resource not found"
}{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}Authorizations
This is the authorization token used to authenticate the request. You must pass the access token generated from the system app. For more information, see the Making your first API request section.
Headers
A header retrieved from your Copilot Account Details that's used by the API to identify the tenant making the request. Tenant ID must be included in the authentication header for API requests to access any of fabric’s endpoints.
Unique request ID
Body
Template request
Specify the product type you want to import using the product import template you will receive from a successful response.
ITEM, BUNDLE "ITEM"
Specify the file format used to upload to Catalog Connector.
csv, jsonl "jsonl"
Response
OK
Was this page helpful?
