Create a fabric template - Fabric

Create a fabric template

cURL

curl --request POST \
  --url https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/fabric/{fabric_id}/templates/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "production template",
  "code": "production template",
  "description": "Template for product and variant attributes in fabric PIM for the connected account of production staff",
  "direction": "export",
  "data_type": "products"
}
'

Python

import requests

url = "https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/fabric/{fabric_id}/templates/"

payload = {
    "name": "production template",
    "code": "production template",
    "description": "Template for product and variant attributes in fabric PIM for the connected account of production staff",
    "direction": "export",
    "data_type": "products"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

JavaScript

const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    name: 'production template',
    code: 'production template',
    description: 'Template for product and variant attributes in fabric PIM for the connected account of production staff',
    direction: 'export',
    data_type: 'products'
  })
};

fetch('https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/fabric/{fabric_id}/templates/', 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://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/fabric/{fabric_id}/templates/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'name' => 'production template',
    'code' => 'production template',
    'description' => 'Template for product and variant attributes in fabric PIM for the connected account of production staff',
    'direction' => 'export',
    'data_type' => 'products'
  ]),
  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;
}

Go

package main

import (
    "fmt"
    "strings"
    "net/http"
    "io"
)

func main() {

url := "https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/fabric/{fabric_id}/templates/"

payload := strings.NewReader("{\n  \"name\": \"production template\",\n  \"code\": \"production template\",\n  \"description\": \"Template for product and variant attributes in fabric PIM for the connected account of production staff\",\n  \"direction\": \"export\",\n  \"data_type\": \"products\"\}")

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))
}

Java

HttpResponse<String> response = Unirest.post("https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/fabric/{fabric_id}/templates/")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"production template\",\n  \"code\": \"production template\",\n  \"description\": \"Template for product and variant attributes in fabric PIM for the connected account of production staff\",\n  \"direction\": \"export\",\n  \"data_type\": \"products\"}\")
  .asString();

Ruby

require 'uri'
require 'net/http'

url = URI("https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/fabric/{fabric_id}/templates/")

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  \"name\": \"production template\",\n  \"code\": \"production template\",\n  \"description\": \"Template for product and variant attributes in fabric PIM for the connected account of production staff\",\n  \"direction\": \"export\",\n  \"data_type\": \"products\"}\"

response = http.request(request)
puts response.read_body

Response

{
  "name": "production template",
  "code": "production template",
  "description": "Template for product and variant attributes in fabric PIM for the connected account of production staff",
  "id": 16,
  "direction": "export",
  "data_type": "products",
  "template_mappings": [{
    "template list": "response"
  }],
  "created_at": "2025-03-10T15:24:56Z"
}

Path Parameters

Parameter Type Required Description
retailer_id integer Yes The unique retailer ID.
fabric_id integer Yes This ID maps to your Platform Account ID.

Body

Name Type Required Description
name string Yes The name of the template.
code string Yes An alternative internal name for the template.
description string null Yes
direction enum No Indicates if the template is for imports or exports.
data_type enum No Describes what kind of data is contained within the template.