Create attribute - Fabric
Create attribute
cURL
curl --request POST \
--url https://live.copilot.fabric.inc/api-offers/attributes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-site-context: <x-site-context>' \
--data '
{
"name": "Brand",
"values": [\
"CHS",\
"SOMA",\
"WHBM"\
]
}
'
import requests
url = "https://live.copilot.fabric.inc/api-offers/attributes"
payload = {
"name": "Brand",
"values": ["CHS", "SOMA", "WHBM"]
}
headers = {
"x-site-context": "<x-site-context>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {
'x-site-context': '<x-site-context>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: 'Brand', values: ['CHS', 'SOMA', 'WHBM']})
};
fetch('https://live.copilot.fabric.inc/api-offers/attributes', 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-offers/attributes",
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([
'name' => 'Brand',
'values' => [
'CHS',
'SOMA',
'WHBM'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://live.copilot.fabric.inc/api-offers/attributes"
payload := strings.NewReader("{\n \"name\": \"Brand\",\n \"values\": [\n \"CHS\",\n \"SOMA\",\n \"WHBM\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-site-context", "<x-site-context>")
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://live.copilot.fabric.inc/api-offers/attributes")
.header("x-site-context", "<x-site-context>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Brand\",\n \"values\": [\n \"CHS\",\n \"SOMA\",\n \"WHBM\"\n ]\n}")
.asString();
require 'uri'
require 'net/http'
url = URI("https://live.copilot.fabric.inc/api-offers/attributes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-site-context"] = '<x-site-context>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Brand\",\n \"values\": [\n \"CHS\",\n \"SOMA\",\n \"WHBM\"\n ]\n}"
response = http.request(request)
puts response.read_body
Response
Success (201)
{
"_id": "614b58924e92f6861ac9d43b",
"attributeId": 100002,
"name": "Brand",
"values": [
"CHS",
"SOMA",
"WHBM"
],
"deleted": false,
"createdAt": "2020-12-14T12:15:43.646Z",
"updatedAt": "2021-12-14T12:15:43.646Z"
}
Conflict (400)
{
"code": "ATTRIBUTE_NAME_EXISTS",
"message": "The attribute name already exists."
}
Server Error (500)
{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error."
}
Authorizations
Authorization
string
header
required
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
x-site-context
string
required
Thex-site-contextheader is a JSON object that contains information about the source you wish to pull from. The mandatoryaccountis the 24 character identifier found in Copilot. Thechannel(Sales channel ID),stage(environment name), anddateattributes can be used to further narrow the scope of your data source.
Example:
{"date": "2023-01-01T00:00:00.000Z", "channel": 12, "account": "1234abcd5678efgh9ijklmno","stage":"production"}
Body
name
string
required
The attribute name.
Example:
"Brand"
values
string[]
required
The attribute values corresponding to thename.
Example:
["CHS", "SOMA", "WHBM"]
Response Fields
_id
string
A 24-character system-generated attribute ID.
Example:
"614b58924e92f6861ac9d43b"
attributeId
number
A unique identifier of the attribute, for external use.
Example:
100002
name
string
The attribute name.
Example:
"Brand"
values
string[]
The attribute values corresponding to thename.
Example:
["CHS", "SOMA", "WHBM"]
deleted
boolean
A flag indicating the deletion status of the attribute. Set it totrueto indicate the attribute is deleted andfalseto indicate otherwise.
Example:
false
createdAt
date-time
The time of attribute creation, in UTC format.
Example:
"2020-12-14T12:15:43.646Z"
updatedAt
date-time
The time when the attribute was last updated, in UTC format.
Example:
"2021-12-14T12:15:43.646Z"