Search Geographies - Fabric
Search Geographies
cURL
curl --request POST \
--url 'https://api.fabric.inc/v3/location-geographies/search?limit=10' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"sort": "-geography.createdAt",
"filters": [
{
"field": "geography.geographyName",
"value": "US_GEO",
"condition": "EQ"
},
{
"field": "geography.locations.locationNumber",
"values": [
"1",
"2"
],
"condition": "IN"
}
]
}'
Python
import requests
url = "https://api.fabric.inc/v3/location-geographies/search?limit=10"
payload = {
"sort": "-geography.createdAt",
"filters": [
{
"field": "geography.geographyName",
"value": "US_GEO",
"condition": "EQ"
},
{
"field": "geography.locations.locationNumber",
"values": ["1", "2"],
"condition": "IN"
}
]
}
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)
JavaScript
const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
sort: '-geography.createdAt',
filters: [
{field: 'geography.geographyName', value: 'US_GEO', condition: 'EQ'},
{
field: 'geography.locations.locationNumber',
values: ['1', '2'],
condition: 'IN'
}
]
})
};
fetch('https://api.fabric.inc/v3/location-geographies/search?limit=10', 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/location-geographies/search?limit=10",
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([
'sort' => '-geography.createdAt',
'filters' => [
[
'field' => 'geography.geographyName',
'value' => 'US_GEO',
'condition' => 'EQ'
],
[
'field' => 'geography.locations.locationNumber',
'values' => ['1', '2'],
'condition' => 'IN'
]
]
]),
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;
}
Golang
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fabric.inc/v3/location-geographies/search?limit=10"
payload := strings.NewReader("{\n \"sort\": \"-geography.createdAt\",\n \"filters\": [\n {\n \"field\": \"geography.geographyName\",\n \"value\": \"US_GEO\",\n \"condition\": \"EQ\"\n },\n {\n \"field\": \"geography.locations.locationNumber\",\n \"values\": [\n \"1\",\n \"2\"\n ],\n \"condition\": \"IN\"\n }\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))
}
Java
HttpResponse<String> response = Unirest.post("https://api.fabric.inc/v3/location-geographies/search?limit=10")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sort\": \"-geography.createdAt\",\n \"filters\": [\n {\n \"field\": \"geography.geographyName\",\n \"value\": \"US_GEO\",\n \"condition\": \"EQ\"\n },\n {\n \"field\": \"geography.locations.locationNumber\",\n \"values\": [\n \"1\",\n \"2\"\n ],\n \"condition\": \"IN\"\n }\n ]\n}")
.asString();
Ruby
require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/location-geographies/search?limit=10")
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 \"sort\": \"-geography.createdAt\",\n \"filters\": [\n {\n \"field\": \"geography.geographyName\",\n \"value\": \"US_GEO\",\n \"condition\": \"EQ\"\n },\n {\n \"field\": \"geography.locations.locationNumber\",\n \"values\": [\n \"1\",\n \"2\"\n ],\n \"condition\": \"IN\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body
Response
Success Response
{
"pagination": {
"limit": 10,
"offset": 1,
"count": 1000
},
"data": [
{
"version": 2,
"geographyName": "US_Geo_PostalCode",
"type": "PostalCode",
"geographyId": "9372919a8219e8",
"description": "Specific geography for US Zones",
"values": [
"<string>"
],
"associatedZone": "US_Zone",
"linkedNetworks": [
"<string>"
],
"createdAt": "2022-07-11T15:03:14.642Z",
"updatedAt": "2022-07-11T15:03:14.642Z",
"resourceId": "<string>",
"subResourceId": "<string>"
}
],
"stats": [
"<string>"
]
}
Error Responses
Client Error
{
"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"
}
}
Unauthorized Request
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders/OrderId_12345"
}
}
Server Error
{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "inventories",
"endpoint": "POST /v3/inventories/actions/find-by-geography"
}
}
Authorizations
Bear authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
- x-fabric-tenant-id: string, required. 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.
Query Parameters
- offset: number, default: 0. Number of records to skip before returning all records. Default is
0when no value is specified. - limit: number, default: 10. Maximum number of records per page.
Body
- filters: object[], required. List to filters for search, maximum array length:
50.