curl --request GET \
--url https://api.useopenwrench.com/api/external/v1/supplier/location/locations \
--header 'OW-KEY: <api-key>' \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.useopenwrench.com/api/external/v1/supplier/location/locations"
headers = {
"X-API-KEY": "<api-key>",
"OW-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>', 'OW-KEY': '<api-key>'}};
fetch('https://api.useopenwrench.com/api/external/v1/supplier/location/locations', 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.useopenwrench.com/api/external/v1/supplier/location/locations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"OW-KEY: <api-key>",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.useopenwrench.com/api/external/v1/supplier/location/locations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("OW-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.useopenwrench.com/api/external/v1/supplier/location/locations")
.header("X-API-KEY", "<api-key>")
.header("OW-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useopenwrench.com/api/external/v1/supplier/location/locations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
request["OW-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"type": "<string>",
"data": [
{
"id": 123,
"storeId": "<string>",
"name": "<string>",
"brandId": 123,
"brandAssetGroupId": 123,
"description": "<string>",
"isActive": true,
"openDate": "2023-11-07T05:31:56Z",
"closeDate": "2023-11-07T05:31:56Z",
"operatingHours": {},
"phoneNumber": "<string>",
"locationTypeId": 123,
"locationTypeDetails": [
{}
],
"notes": "<string>",
"internalNotes": "<string>",
"images": [
"<string>"
],
"internalAttachments": [
{
"fileName": "<string>",
"fileId": "<string>"
}
],
"primaryContactsEmails": [
"<string>"
],
"facilityInChargeEmails": [
"<string>"
],
"sendApprovedInvoicesToEmails": [
"<string>"
],
"sendApprovedQuotesToEmails": [
"<string>"
],
"storeAssociateEmails": [
"<string>"
],
"fieldTechEmails": [
"<string>"
],
"timeZoneId": "<string>",
"regionId": 123,
"region": {
"name": "<string>",
"buyerCompanyId": 123,
"hasChildren": true,
"isDeleted": true,
"id": 123,
"hierarchyName": "<string>",
"parentId": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"deletedAt": "2023-11-07T05:31:56Z"
},
"purchaseOrderPrefix": "<string>",
"isLeased": true,
"leaseStartDate": "2023-11-07T05:31:56Z",
"leaseEndDate": "2023-11-07T05:31:56Z",
"taxRate": "<string>",
"countryCode": "<string>",
"buyerFacilityId": 123,
"buyerCompanyId": 123,
"totalWOCount": 123,
"totalNotClosedWOCount": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"isDeleted": true,
"deletedAt": "2023-11-07T05:31:56Z"
}
],
"count": 123,
"status": "ok"
}{
"message": "<string>",
"type": "<string>",
"status": "error",
"traceId": "<string>"
}{
"message": "<string>",
"type": "<string>",
"status": "error",
"traceId": "<string>"
}{
"message": "<string>",
"type": "<string>",
"status": "error",
"traceId": "<string>"
}List locations
Lists locations visible to the supplier key. NOTE: on this endpoint the page size is capped at 10 (a larger limit is silently reduced to 10). For third-party suppliers each location is masked (buyer-private fields blanked); internal-service-team keys receive the full record. Additional entity-specific query-string filters (indexed column names) are passed through to the data layer; tenant-security filters restricting results to the API key’s supplier facility/company are always applied server-side and cannot be overridden.
curl --request GET \
--url https://api.useopenwrench.com/api/external/v1/supplier/location/locations \
--header 'OW-KEY: <api-key>' \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.useopenwrench.com/api/external/v1/supplier/location/locations"
headers = {
"X-API-KEY": "<api-key>",
"OW-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>', 'OW-KEY': '<api-key>'}};
fetch('https://api.useopenwrench.com/api/external/v1/supplier/location/locations', 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.useopenwrench.com/api/external/v1/supplier/location/locations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"OW-KEY: <api-key>",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.useopenwrench.com/api/external/v1/supplier/location/locations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("OW-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.useopenwrench.com/api/external/v1/supplier/location/locations")
.header("X-API-KEY", "<api-key>")
.header("OW-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useopenwrench.com/api/external/v1/supplier/location/locations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
request["OW-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"type": "<string>",
"data": [
{
"id": 123,
"storeId": "<string>",
"name": "<string>",
"brandId": 123,
"brandAssetGroupId": 123,
"description": "<string>",
"isActive": true,
"openDate": "2023-11-07T05:31:56Z",
"closeDate": "2023-11-07T05:31:56Z",
"operatingHours": {},
"phoneNumber": "<string>",
"locationTypeId": 123,
"locationTypeDetails": [
{}
],
"notes": "<string>",
"internalNotes": "<string>",
"images": [
"<string>"
],
"internalAttachments": [
{
"fileName": "<string>",
"fileId": "<string>"
}
],
"primaryContactsEmails": [
"<string>"
],
"facilityInChargeEmails": [
"<string>"
],
"sendApprovedInvoicesToEmails": [
"<string>"
],
"sendApprovedQuotesToEmails": [
"<string>"
],
"storeAssociateEmails": [
"<string>"
],
"fieldTechEmails": [
"<string>"
],
"timeZoneId": "<string>",
"regionId": 123,
"region": {
"name": "<string>",
"buyerCompanyId": 123,
"hasChildren": true,
"isDeleted": true,
"id": 123,
"hierarchyName": "<string>",
"parentId": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"deletedAt": "2023-11-07T05:31:56Z"
},
"purchaseOrderPrefix": "<string>",
"isLeased": true,
"leaseStartDate": "2023-11-07T05:31:56Z",
"leaseEndDate": "2023-11-07T05:31:56Z",
"taxRate": "<string>",
"countryCode": "<string>",
"buyerFacilityId": 123,
"buyerCompanyId": 123,
"totalWOCount": 123,
"totalNotClosedWOCount": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"isDeleted": true,
"deletedAt": "2023-11-07T05:31:56Z"
}
],
"count": 123,
"status": "ok"
}{
"message": "<string>",
"type": "<string>",
"status": "error",
"traceId": "<string>"
}{
"message": "<string>",
"type": "<string>",
"status": "error",
"traceId": "<string>"
}{
"message": "<string>",
"type": "<string>",
"status": "error",
"traceId": "<string>"
}Autorizaciones
OpenWrench shared secret. Required on every request alongside X-API-KEY; issued together with your API key.
Parámetros de consulta
Number of records to skip.
x >= 0Page size. Default 10; values above 10 are reduced to 10 on this endpoint.
Column name to sort by.
Sort direction.
asc, desc Respuesta
Successful response
Entity type label, e.g. "Location". Endpoints that derive it via Scala reflection (most generic list/get endpoints) may return the fully qualified server class name instead (e.g. "models.workorder.WorkOrder"); treat this field as informational.
Show child attributes
Show child attributes
Total number of matching records (across all pages)
"ok" on success
ok