curl --request POST \
--url https://api.fabric.inc/v3/catalog-connector-files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"type": "CATALOG_CONN_ITEM_VARIANT_IMPORT",
"name": "bulk_import_123345677788999.csv",
"locale": "en-US",
"formatType": "jsonl"
}
'import requests
url = "https://api.fabric.inc/v3/catalog-connector-files"
payload = {
"type": "CATALOG_CONN_ITEM_VARIANT_IMPORT",
"name": "bulk_import_123345677788999.csv",
"locale": "en-US",
"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: 'CATALOG_CONN_ITEM_VARIANT_IMPORT',
name: 'bulk_import_123345677788999.csv',
locale: 'en-US',
formatType: 'jsonl'
})
};
fetch('https://api.fabric.inc/v3/catalog-connector-files', 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-files",
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' => 'CATALOG_CONN_ITEM_VARIANT_IMPORT',
'name' => 'bulk_import_123345677788999.csv',
'locale' => 'en-US',
'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-files"
payload := strings.NewReader("{\n \"type\": \"CATALOG_CONN_ITEM_VARIANT_IMPORT\",\n \"name\": \"bulk_import_123345677788999.csv\",\n \"locale\": \"en-US\",\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-files")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"CATALOG_CONN_ITEM_VARIANT_IMPORT\",\n \"name\": \"bulk_import_123345677788999.csv\",\n \"locale\": \"en-US\",\n \"formatType\": \"jsonl\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/catalog-connector-files")
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\": \"CATALOG_CONN_ITEM_VARIANT_IMPORT\",\n \"name\": \"bulk_import_123345677788999.csv\",\n \"locale\": \"en-US\",\n \"formatType\": \"jsonl\"\n}"
response = http.request(request)
puts response.read_body{
"id": "857f1f77bcf86cd799439054",
"type": "CATALOG_CONN_ITEM_VARIANT_IMPORT",
"name": "bulk_import_123345677788999.csv",
"locale": "en-US",
"formatType": "jsonl",
"createdAt": "2021-09-14T22:10:30.618Z",
"updatedBy": "test@email.com",
"updatedAt": "2021-09-14T22:10:30.618Z",
"location": "https://s3.console.aws.amazon.com/s3/buckets/greatwall-stg01-bulk-import-pim/bulk_import_123345677788999.csv"
}{
"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": "SERVER_ERROR",
"message": "Internal Server Error"
}Create a file object and retrieve the file upload URL
Use this endpoint to retrieve the URL of the AWS S3 location to upload the file that you want to import to the Catalog Connector.
curl --request POST \
--url https://api.fabric.inc/v3/catalog-connector-files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"type": "CATALOG_CONN_ITEM_VARIANT_IMPORT",
"name": "bulk_import_123345677788999.csv",
"locale": "en-US",
"formatType": "jsonl"
}
'import requests
url = "https://api.fabric.inc/v3/catalog-connector-files"
payload = {
"type": "CATALOG_CONN_ITEM_VARIANT_IMPORT",
"name": "bulk_import_123345677788999.csv",
"locale": "en-US",
"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: 'CATALOG_CONN_ITEM_VARIANT_IMPORT',
name: 'bulk_import_123345677788999.csv',
locale: 'en-US',
formatType: 'jsonl'
})
};
fetch('https://api.fabric.inc/v3/catalog-connector-files', 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-files",
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' => 'CATALOG_CONN_ITEM_VARIANT_IMPORT',
'name' => 'bulk_import_123345677788999.csv',
'locale' => 'en-US',
'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-files"
payload := strings.NewReader("{\n \"type\": \"CATALOG_CONN_ITEM_VARIANT_IMPORT\",\n \"name\": \"bulk_import_123345677788999.csv\",\n \"locale\": \"en-US\",\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-files")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"CATALOG_CONN_ITEM_VARIANT_IMPORT\",\n \"name\": \"bulk_import_123345677788999.csv\",\n \"locale\": \"en-US\",\n \"formatType\": \"jsonl\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/catalog-connector-files")
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\": \"CATALOG_CONN_ITEM_VARIANT_IMPORT\",\n \"name\": \"bulk_import_123345677788999.csv\",\n \"locale\": \"en-US\",\n \"formatType\": \"jsonl\"\n}"
response = http.request(request)
puts response.read_body{
"id": "857f1f77bcf86cd799439054",
"type": "CATALOG_CONN_ITEM_VARIANT_IMPORT",
"name": "bulk_import_123345677788999.csv",
"locale": "en-US",
"formatType": "jsonl",
"createdAt": "2021-09-14T22:10:30.618Z",
"updatedBy": "test@email.com",
"updatedAt": "2021-09-14T22:10:30.618Z",
"location": "https://s3.console.aws.amazon.com/s3/buckets/greatwall-stg01-bulk-import-pim/bulk_import_123345677788999.csv"
}{
"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": "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
A sample request to create a file object and retrieve the upload URL to import products to the Catalog Connector.
Specify the type of operation or job performed by uploading the file.
CATALOG_CONN_ITEM_VARIANT_IMPORT, CATALOG_CONN_ITEM_VARIANT_EXPORT, CATALOG_CONN_BUNDLE_IMPORT, CATALOG_CONN_BUNDLE_EXPORT "CATALOG_CONN_ITEM_VARIANT_IMPORT"
The name of the file to be imported.
"bulk_import_123345677788999.csv"
The language code, which is a combination of language (ISO 639 format) and country (ISO 3166 format).
The default value is en-US.
"en-US"
Specify the file format used to upload to Catalog Connector.
csv, jsonl "jsonl"
Response
OK
The details of the file.
A 24-character system-generated file ID.
"857f1f77bcf86cd799439054"
Specify the type of operation or job performed by uploading the file.
CATALOG_CONN_ITEM_VARIANT_IMPORT, CATALOG_CONN_ITEM_VARIANT_EXPORT, CATALOG_CONN_BUNDLE_IMPORT, CATALOG_CONN_BUNDLE_EXPORT "CATALOG_CONN_ITEM_VARIANT_IMPORT"
The name of the file name to be uploaded to the AWS S3 location.
"bulk_import_123345677788999.csv"
The language code, which is a combination of language (ISO 639 format) and country (ISO 3166 format).
The default value is en-US.
"en-US"
Specify the file format used to upload to Catalog Connector.
csv, jsonl "jsonl"
The time of file creation, in UTC format.
"2021-09-14T22:10:30.618Z"
The email of the user who last updated the file.
"test@email.com"
The time of last update to the file, in UTC format.
"2021-09-14T22:10:30.618Z"
The AWS S3 file location of the imported file is provided as a URL.
"https://s3.console.aws.amazon.com/s3/buckets/greatwall-stg01-bulk-import-pim/bulk_import_123345677788999.csv"
Was this page helpful?
