curl --request POST \
--url https://api.fabric.inc/v3/offers-imports/actions/generate-error-file-download-url \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"fileName": "price/error-file1.csv"
}
'import requests
url = "https://api.fabric.inc/v3/offers-imports/actions/generate-error-file-download-url"
payload = { "fileName": "price/error-file1.csv" }
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({fileName: 'price/error-file1.csv'})
};
fetch('https://api.fabric.inc/v3/offers-imports/actions/generate-error-file-download-url', 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/offers-imports/actions/generate-error-file-download-url",
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([
'fileName' => 'price/error-file1.csv'
]),
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/offers-imports/actions/generate-error-file-download-url"
payload := strings.NewReader("{\n \"fileName\": \"price/error-file1.csv\"\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/offers-imports/actions/generate-error-file-download-url")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fileName\": \"price/error-file1.csv\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/offers-imports/actions/generate-error-file-download-url")
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 \"fileName\": \"price/error-file1.csv\"\n}"
response = http.request(request)
puts response.read_body{
"url": "https://example.s3.amazonaws.com/pricelist/123/dev02/123-priceList1.csv?X-Amz-Algorithm...x-amz-meta-stage=dev02",
"fileName": "prices/1646680518524-file1.csv"
}{
"type": "TENANT_HEADER_REQUIRED",
"message": "x-fabric-tenant-id header is required"
}{
"type": "UNAUTHORIZED",
"message": "Invalid credentials"
}{
"type": "INTERNAL_SERVER_ERROR",
"message": "Internal server error"
}Retrieve the download URL for an error file
Use this endpoint to retrieve an AWS S3 URL to access the error data of a previously imported file. The URL is valid for five minutes. Make a GET request with this URL to download the error data in a CSV format.
curl --request POST \
--url https://api.fabric.inc/v3/offers-imports/actions/generate-error-file-download-url \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"fileName": "price/error-file1.csv"
}
'import requests
url = "https://api.fabric.inc/v3/offers-imports/actions/generate-error-file-download-url"
payload = { "fileName": "price/error-file1.csv" }
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({fileName: 'price/error-file1.csv'})
};
fetch('https://api.fabric.inc/v3/offers-imports/actions/generate-error-file-download-url', 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/offers-imports/actions/generate-error-file-download-url",
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([
'fileName' => 'price/error-file1.csv'
]),
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/offers-imports/actions/generate-error-file-download-url"
payload := strings.NewReader("{\n \"fileName\": \"price/error-file1.csv\"\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/offers-imports/actions/generate-error-file-download-url")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fileName\": \"price/error-file1.csv\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/offers-imports/actions/generate-error-file-download-url")
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 \"fileName\": \"price/error-file1.csv\"\n}"
response = http.request(request)
puts response.read_body{
"url": "https://example.s3.amazonaws.com/pricelist/123/dev02/123-priceList1.csv?X-Amz-Algorithm...x-amz-meta-stage=dev02",
"fileName": "prices/1646680518524-file1.csv"
}{
"type": "TENANT_HEADER_REQUIRED",
"message": "x-fabric-tenant-id header is required"
}{
"type": "UNAUTHORIZED",
"message": "Invalid credentials"
}{
"type": "INTERNAL_SERVER_ERROR",
"message": "Internal server error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
A header used by fabric to identify the tenant making the request. You must include tenant id in the authentication header for an API request to access any of fabric’s endpoints. You can retrieve the tenant id , which is also called account id, from Copilot. This header is required.
24The sales channel ID.
"12"
A unique request ID.
"263e731c-45c8-11ed-b878-0242ac120002"
Body
A sample request to retrieve an AWS S3 URL used to download the error file of a previous import.
The name of the error file to be downloaded. You can get the errorFileName from the Get import jobs endpoint.
"price/error-file1.csv"
Response
OK
A sample response with an AWS S3 URL used to download the error file.
The AWS S3 URL used to download an error file of a previous import, in a CSV format. The URL is valid for 5 minutes.
"https://example.s3.amazonaws.com/pricelist/123/dev02/123-priceList1.csv?X-Amz-Algorithm...x-amz-meta-stage=dev02"
The name of the file.
"prices/1646680518524-file1.csv"
Was this page helpful?
