curl --request POST \
--url https://api.fabric.inc/v3/locations/geography-search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"filters": [
{
"field": "TYPE",
"value": [
"DC",
"Store"
]
}
],
"origin": {
"city": "San Francisco",
"country": "United States",
"minDistance": "5",
"maxDistance": "50",
"postalCode": "89135",
"region": "New York"
}
}
'import requests
url = "https://api.fabric.inc/v3/locations/geography-search"
payload = {
"filters": [
{
"field": "TYPE",
"value": ["DC", "Store"]
}
],
"origin": {
"city": "San Francisco",
"country": "United States",
"minDistance": "5",
"maxDistance": "50",
"postalCode": "89135",
"region": "New York"
}
}
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({
filters: [{field: 'TYPE', value: ['DC', 'Store']}],
origin: {
city: 'San Francisco',
country: 'United States',
minDistance: '5',
maxDistance: '50',
postalCode: '89135',
region: 'New York'
}
})
};
fetch('https://api.fabric.inc/v3/locations/geography-search', 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/locations/geography-search",
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([
'filters' => [
[
'field' => 'TYPE',
'value' => [
'DC',
'Store'
]
]
],
'origin' => [
'city' => 'San Francisco',
'country' => 'United States',
'minDistance' => '5',
'maxDistance' => '50',
'postalCode' => '89135',
'region' => 'New York'
]
]),
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/locations/geography-search"
payload := strings.NewReader("{\n \"filters\": [\n {\n \"field\": \"TYPE\",\n \"value\": [\n \"DC\",\n \"Store\"\n ]\n }\n ],\n \"origin\": {\n \"city\": \"San Francisco\",\n \"country\": \"United States\",\n \"minDistance\": \"5\",\n \"maxDistance\": \"50\",\n \"postalCode\": \"89135\",\n \"region\": \"New York\"\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/locations/geography-search")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"filters\": [\n {\n \"field\": \"TYPE\",\n \"value\": [\n \"DC\",\n \"Store\"\n ]\n }\n ],\n \"origin\": {\n \"city\": \"San Francisco\",\n \"country\": \"United States\",\n \"minDistance\": \"5\",\n \"maxDistance\": \"50\",\n \"postalCode\": \"89135\",\n \"region\": \"New York\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/locations/geography-search")
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 \"filters\": [\n {\n \"field\": \"TYPE\",\n \"value\": [\n \"DC\",\n \"Store\"\n ]\n }\n ],\n \"origin\": {\n \"city\": \"San Francisco\",\n \"country\": \"United States\",\n \"minDistance\": \"5\",\n \"maxDistance\": \"50\",\n \"postalCode\": \"89135\",\n \"region\": \"New York\"\n }\n}"
response = http.request(request)
puts response.read_body{
"pagination": {
"limit": 10,
"offset": 1,
"count": 1000
},
"data": [
{
"locationNumber": 23,
"name": "Seattle Store",
"distance": 100,
"locationId": "9372919a8219e8",
"isActive": true,
"address": {
"region": "WA",
"addressLine1": 123,
"addressLine2": "Suite 100",
"addressLine3": "Seventh floor",
"addressLine4": "Attention: Pat E. Kake",
"city": "Seattle",
"countryCode": "US",
"postalCode": 98121,
"type": "Home",
"contacts": [
{
"type": "OFFICE",
"email": "abc@mail.com",
"phone": [
{
"number": "0281923712",
"type": "MOBILE"
}
],
"name": {
"firstName": "Pat",
"middleName": "E",
"lastName": "Kake"
}
}
]
},
"type": "DC",
"capacity": {
"maxAllocations": 30,
"currentAllocations": 5,
"infiniteAllocation": true,
"allocationPercentage": 20,
"isCapacityFull": true
},
"services": {
"brand": "WHBM",
"channel": "Frontline"
},
"zones": [
"<string>"
],
"createdAt": "2022-05-25T07:58:30.996Z",
"updatedAt": "2022-05-25T07:58:30.996Z",
"operatingHours": [
{
"day": "SUNDAY",
"hours": [
{
"open": 10,
"close": 20,
"type": "PICK_UP"
}
]
}
],
"coordinates": {
"type": "Point",
"coordinates": [
-122.3493,
47.6205
]
},
"attributes": {
"isReturns": "true"
},
"supportedCarriers": [
{
"carrier": "FedEx",
"serviceLevels": [
{
"name": "FedEx",
"shippingMethod": "FedEx"
}
]
}
],
"activeFulfillmentMethods": {
"ShipToHome": "true"
},
"transfer": {
"isAutoReceiving": true,
"autoStockWindow": "PT10M"
}
}
],
"stats": [
"<string>"
]
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4003",
"message": "Mandatory param(s): `requiredField1` is/are missing",
"errors": [
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4002",
"message": "Invalid value(s) specified for 'requiredField.field3'",
"errors": []
}
],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders"
}
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders/OrderId_12345"
}
}{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "inventories",
"endpoint": "POST /v3/inventories/actions/find-by-geography"
}
}Search Nearby Locations
Searches for nearby locations based on a specified address or coordinate input. Useful for location-aware services and delivery matching.
curl --request POST \
--url https://api.fabric.inc/v3/locations/geography-search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"filters": [
{
"field": "TYPE",
"value": [
"DC",
"Store"
]
}
],
"origin": {
"city": "San Francisco",
"country": "United States",
"minDistance": "5",
"maxDistance": "50",
"postalCode": "89135",
"region": "New York"
}
}
'import requests
url = "https://api.fabric.inc/v3/locations/geography-search"
payload = {
"filters": [
{
"field": "TYPE",
"value": ["DC", "Store"]
}
],
"origin": {
"city": "San Francisco",
"country": "United States",
"minDistance": "5",
"maxDistance": "50",
"postalCode": "89135",
"region": "New York"
}
}
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({
filters: [{field: 'TYPE', value: ['DC', 'Store']}],
origin: {
city: 'San Francisco',
country: 'United States',
minDistance: '5',
maxDistance: '50',
postalCode: '89135',
region: 'New York'
}
})
};
fetch('https://api.fabric.inc/v3/locations/geography-search', 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/locations/geography-search",
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([
'filters' => [
[
'field' => 'TYPE',
'value' => [
'DC',
'Store'
]
]
],
'origin' => [
'city' => 'San Francisco',
'country' => 'United States',
'minDistance' => '5',
'maxDistance' => '50',
'postalCode' => '89135',
'region' => 'New York'
]
]),
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/locations/geography-search"
payload := strings.NewReader("{\n \"filters\": [\n {\n \"field\": \"TYPE\",\n \"value\": [\n \"DC\",\n \"Store\"\n ]\n }\n ],\n \"origin\": {\n \"city\": \"San Francisco\",\n \"country\": \"United States\",\n \"minDistance\": \"5\",\n \"maxDistance\": \"50\",\n \"postalCode\": \"89135\",\n \"region\": \"New York\"\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/locations/geography-search")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"filters\": [\n {\n \"field\": \"TYPE\",\n \"value\": [\n \"DC\",\n \"Store\"\n ]\n }\n ],\n \"origin\": {\n \"city\": \"San Francisco\",\n \"country\": \"United States\",\n \"minDistance\": \"5\",\n \"maxDistance\": \"50\",\n \"postalCode\": \"89135\",\n \"region\": \"New York\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/locations/geography-search")
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 \"filters\": [\n {\n \"field\": \"TYPE\",\n \"value\": [\n \"DC\",\n \"Store\"\n ]\n }\n ],\n \"origin\": {\n \"city\": \"San Francisco\",\n \"country\": \"United States\",\n \"minDistance\": \"5\",\n \"maxDistance\": \"50\",\n \"postalCode\": \"89135\",\n \"region\": \"New York\"\n }\n}"
response = http.request(request)
puts response.read_body{
"pagination": {
"limit": 10,
"offset": 1,
"count": 1000
},
"data": [
{
"locationNumber": 23,
"name": "Seattle Store",
"distance": 100,
"locationId": "9372919a8219e8",
"isActive": true,
"address": {
"region": "WA",
"addressLine1": 123,
"addressLine2": "Suite 100",
"addressLine3": "Seventh floor",
"addressLine4": "Attention: Pat E. Kake",
"city": "Seattle",
"countryCode": "US",
"postalCode": 98121,
"type": "Home",
"contacts": [
{
"type": "OFFICE",
"email": "abc@mail.com",
"phone": [
{
"number": "0281923712",
"type": "MOBILE"
}
],
"name": {
"firstName": "Pat",
"middleName": "E",
"lastName": "Kake"
}
}
]
},
"type": "DC",
"capacity": {
"maxAllocations": 30,
"currentAllocations": 5,
"infiniteAllocation": true,
"allocationPercentage": 20,
"isCapacityFull": true
},
"services": {
"brand": "WHBM",
"channel": "Frontline"
},
"zones": [
"<string>"
],
"createdAt": "2022-05-25T07:58:30.996Z",
"updatedAt": "2022-05-25T07:58:30.996Z",
"operatingHours": [
{
"day": "SUNDAY",
"hours": [
{
"open": 10,
"close": 20,
"type": "PICK_UP"
}
]
}
],
"coordinates": {
"type": "Point",
"coordinates": [
-122.3493,
47.6205
]
},
"attributes": {
"isReturns": "true"
},
"supportedCarriers": [
{
"carrier": "FedEx",
"serviceLevels": [
{
"name": "FedEx",
"shippingMethod": "FedEx"
}
]
}
],
"activeFulfillmentMethods": {
"ShipToHome": "true"
},
"transfer": {
"isAutoReceiving": true,
"autoStockWindow": "PT10M"
}
}
],
"stats": [
"<string>"
]
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4003",
"message": "Mandatory param(s): `requiredField1` is/are missing",
"errors": [
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4002",
"message": "Invalid value(s) specified for 'requiredField.field3'",
"errors": []
}
],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders"
}
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders/OrderId_12345"
}
}{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "inventories",
"endpoint": "POST /v3/inventories/actions/find-by-geography"
}
}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.
Query Parameters
Number of records to skip before returning all records. Default is 0 when no value is specified.
0
Maximum number of records per page
1 <= x <= 10010
Body
Was this page helpful?
