Search Nearby Locations
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"
}
}Locations
Search Nearby Locations
Searches for nearby locations based on a specified address or coordinate input. Useful for location-aware services and delivery matching.
POST
/
locations
/
geography-search
Search Nearby Locations
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
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.
Query Parameters
Body
application/json
Was this page helpful?
