curl --request POST \
--url https://api.fabric.inc/v3/inventories/actions/find-by-geography \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"origin": {
"city": "San Francisco",
"countryCode": "US",
"distanceUnit": "MILE",
"latitude": 21.2629852,
"longitude": -108.7256871,
"maxDistance": 100,
"minDistance": 10,
"postalCode": "94008",
"region": "New York"
},
"locationTypes": [
"DC"
],
"skus": [
"sku1"
]
}
'import requests
url = "https://api.fabric.inc/v3/inventories/actions/find-by-geography"
payload = {
"origin": {
"city": "San Francisco",
"countryCode": "US",
"distanceUnit": "MILE",
"latitude": 21.2629852,
"longitude": -108.7256871,
"maxDistance": 100,
"minDistance": 10,
"postalCode": "94008",
"region": "New York"
},
"locationTypes": ["DC"],
"skus": ["sku1"]
}
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({
origin: {
city: 'San Francisco',
countryCode: 'US',
distanceUnit: 'MILE',
latitude: 21.2629852,
longitude: -108.7256871,
maxDistance: 100,
minDistance: 10,
postalCode: '94008',
region: 'New York'
},
locationTypes: ['DC'],
skus: ['sku1']
})
};
fetch('https://api.fabric.inc/v3/inventories/actions/find-by-geography', 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/inventories/actions/find-by-geography",
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([
'origin' => [
'city' => 'San Francisco',
'countryCode' => 'US',
'distanceUnit' => 'MILE',
'latitude' => 21.2629852,
'longitude' => -108.7256871,
'maxDistance' => 100,
'minDistance' => 10,
'postalCode' => '94008',
'region' => 'New York'
],
'locationTypes' => [
'DC'
],
'skus' => [
'sku1'
]
]),
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/inventories/actions/find-by-geography"
payload := strings.NewReader("{\n \"origin\": {\n \"city\": \"San Francisco\",\n \"countryCode\": \"US\",\n \"distanceUnit\": \"MILE\",\n \"latitude\": 21.2629852,\n \"longitude\": -108.7256871,\n \"maxDistance\": 100,\n \"minDistance\": 10,\n \"postalCode\": \"94008\",\n \"region\": \"New York\"\n },\n \"locationTypes\": [\n \"DC\"\n ],\n \"skus\": [\n \"sku1\"\n ]\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/inventories/actions/find-by-geography")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"origin\": {\n \"city\": \"San Francisco\",\n \"countryCode\": \"US\",\n \"distanceUnit\": \"MILE\",\n \"latitude\": 21.2629852,\n \"longitude\": -108.7256871,\n \"maxDistance\": 100,\n \"minDistance\": 10,\n \"postalCode\": \"94008\",\n \"region\": \"New York\"\n },\n \"locationTypes\": [\n \"DC\"\n ],\n \"skus\": [\n \"sku1\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/inventories/actions/find-by-geography")
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 \"origin\": {\n \"city\": \"San Francisco\",\n \"countryCode\": \"US\",\n \"distanceUnit\": \"MILE\",\n \"latitude\": 21.2629852,\n \"longitude\": -108.7256871,\n \"maxDistance\": 100,\n \"minDistance\": 10,\n \"postalCode\": \"94008\",\n \"region\": \"New York\"\n },\n \"locationTypes\": [\n \"DC\"\n ],\n \"skus\": [\n \"sku1\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"inventories": [
{
"backorderLimit": 50,
"backorderShipmentAt": "2022-08-01T20:03:28.483Z",
"channelId": "channel_xyz",
"counters": {
"allocated": 10,
"onHand": 100,
"shipped": 20
},
"createdAt": "2022-08-01T18:03:28.483Z",
"customAttributes": {
"isBopis": true
},
"hasInfiniteInventory": false,
"inventoryId": "723910d81723",
"isNoStock": false,
"itemId": 12345,
"leadTime": "5 days",
"locationNumber": 12345,
"lowStock": 10,
"networkCode": "ShipToHome",
"networkCounters": {
"softReserve": 10
},
"preorderLimit": 40,
"preorderShipmentAt": "2022-08-01T20:03:28.483Z",
"region": "North America",
"safetyStock": 10,
"sku": "SKU1",
"status": " IN_STOCK",
"type": "primary",
"updatedAt": "2022-08-01T20:03:28.483Z",
"vendorId": "vendor1",
"virtualCounters": {
"availableBackorder": "<string>",
"availablePreorder": "<string>",
"availableToPurchase": "<string>"
},
"virtualCountersStatus": {
"availableBackorder": "<string>",
"availablePreorder": "<string>",
"availableToPurchase": "<string>"
}
}
],
"locations": [
{
"capacity": {
"allocationPercentage": 20,
"currentAllocations": 5,
"infiniteAllocation": true,
"isCapacityFull": true,
"maxAllocations": 30
},
"distance": 12.34,
"locationNumber": 12345,
"locationType": "DC"
}
]
}{
"errors": [
{
"message": "Invalid request",
"type": "CLIENT_ERROR"
}
],
"message": "Bad request",
"type": "CLIENT_ERROR"
}{
"message": "Unauthorized request",
"type": "CLIENT_ERROR"
}{
"message": "Internal server error",
"type": "SERVER_ERROR"
}Find inventory of specific items in a specific region
Search for list of inventories of specific items in a specific region based on SKUs, postal code, latitude, longitude, and other details of the location as specified in the request body.
curl --request POST \
--url https://api.fabric.inc/v3/inventories/actions/find-by-geography \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"origin": {
"city": "San Francisco",
"countryCode": "US",
"distanceUnit": "MILE",
"latitude": 21.2629852,
"longitude": -108.7256871,
"maxDistance": 100,
"minDistance": 10,
"postalCode": "94008",
"region": "New York"
},
"locationTypes": [
"DC"
],
"skus": [
"sku1"
]
}
'import requests
url = "https://api.fabric.inc/v3/inventories/actions/find-by-geography"
payload = {
"origin": {
"city": "San Francisco",
"countryCode": "US",
"distanceUnit": "MILE",
"latitude": 21.2629852,
"longitude": -108.7256871,
"maxDistance": 100,
"minDistance": 10,
"postalCode": "94008",
"region": "New York"
},
"locationTypes": ["DC"],
"skus": ["sku1"]
}
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({
origin: {
city: 'San Francisco',
countryCode: 'US',
distanceUnit: 'MILE',
latitude: 21.2629852,
longitude: -108.7256871,
maxDistance: 100,
minDistance: 10,
postalCode: '94008',
region: 'New York'
},
locationTypes: ['DC'],
skus: ['sku1']
})
};
fetch('https://api.fabric.inc/v3/inventories/actions/find-by-geography', 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/inventories/actions/find-by-geography",
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([
'origin' => [
'city' => 'San Francisco',
'countryCode' => 'US',
'distanceUnit' => 'MILE',
'latitude' => 21.2629852,
'longitude' => -108.7256871,
'maxDistance' => 100,
'minDistance' => 10,
'postalCode' => '94008',
'region' => 'New York'
],
'locationTypes' => [
'DC'
],
'skus' => [
'sku1'
]
]),
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/inventories/actions/find-by-geography"
payload := strings.NewReader("{\n \"origin\": {\n \"city\": \"San Francisco\",\n \"countryCode\": \"US\",\n \"distanceUnit\": \"MILE\",\n \"latitude\": 21.2629852,\n \"longitude\": -108.7256871,\n \"maxDistance\": 100,\n \"minDistance\": 10,\n \"postalCode\": \"94008\",\n \"region\": \"New York\"\n },\n \"locationTypes\": [\n \"DC\"\n ],\n \"skus\": [\n \"sku1\"\n ]\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/inventories/actions/find-by-geography")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"origin\": {\n \"city\": \"San Francisco\",\n \"countryCode\": \"US\",\n \"distanceUnit\": \"MILE\",\n \"latitude\": 21.2629852,\n \"longitude\": -108.7256871,\n \"maxDistance\": 100,\n \"minDistance\": 10,\n \"postalCode\": \"94008\",\n \"region\": \"New York\"\n },\n \"locationTypes\": [\n \"DC\"\n ],\n \"skus\": [\n \"sku1\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/inventories/actions/find-by-geography")
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 \"origin\": {\n \"city\": \"San Francisco\",\n \"countryCode\": \"US\",\n \"distanceUnit\": \"MILE\",\n \"latitude\": 21.2629852,\n \"longitude\": -108.7256871,\n \"maxDistance\": 100,\n \"minDistance\": 10,\n \"postalCode\": \"94008\",\n \"region\": \"New York\"\n },\n \"locationTypes\": [\n \"DC\"\n ],\n \"skus\": [\n \"sku1\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"inventories": [
{
"backorderLimit": 50,
"backorderShipmentAt": "2022-08-01T20:03:28.483Z",
"channelId": "channel_xyz",
"counters": {
"allocated": 10,
"onHand": 100,
"shipped": 20
},
"createdAt": "2022-08-01T18:03:28.483Z",
"customAttributes": {
"isBopis": true
},
"hasInfiniteInventory": false,
"inventoryId": "723910d81723",
"isNoStock": false,
"itemId": 12345,
"leadTime": "5 days",
"locationNumber": 12345,
"lowStock": 10,
"networkCode": "ShipToHome",
"networkCounters": {
"softReserve": 10
},
"preorderLimit": 40,
"preorderShipmentAt": "2022-08-01T20:03:28.483Z",
"region": "North America",
"safetyStock": 10,
"sku": "SKU1",
"status": " IN_STOCK",
"type": "primary",
"updatedAt": "2022-08-01T20:03:28.483Z",
"vendorId": "vendor1",
"virtualCounters": {
"availableBackorder": "<string>",
"availablePreorder": "<string>",
"availableToPurchase": "<string>"
},
"virtualCountersStatus": {
"availableBackorder": "<string>",
"availablePreorder": "<string>",
"availableToPurchase": "<string>"
}
}
],
"locations": [
{
"capacity": {
"allocationPercentage": 20,
"currentAllocations": 5,
"infiniteAllocation": true,
"isCapacityFull": true,
"maxAllocations": 30
},
"distance": 12.34,
"locationNumber": 12345,
"locationType": "DC"
}
]
}{
"errors": [
{
"message": "Invalid request",
"type": "CLIENT_ERROR"
}
],
"message": "Bad request",
"type": "CLIENT_ERROR"
}{
"message": "Unauthorized request",
"type": "CLIENT_ERROR"
}{
"message": "Internal server error",
"type": "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.
Unique request ID
x-fabric-channel-id identifies the sales channel through which the API request is being made; primarily for multichannel use cases. It is an optional field. The default US channel is 12 while the default Canada channel is 13.
x-fabric-channel-id identifies the sales channel through which the API request is being made; primarily for multichannel use cases. It is an optional field. The default US channel is 12 while the default Canada channel is 13. This field is optional. Note: Use xFabricChannelIds for multiple channels, and xFabricChannelId for a single channel.
Body
Find inventory by geography request
Geo search origin. Must include (postalCode) OR (city and region and countryCode) OR (latitude and longitude)
Show child attributes
Show child attributes
List of location types
Location type
List of SKUs for which the inventories are to be searched within the specified region
SKU
Was this page helpful?
