-
Notifications
You must be signed in to change notification settings - Fork 1
Location API v2 documentation
shortDescription and longDescription has been moved to a description node and renamed to short and long.
When a location is updated changes to address and location (lat/lon) are put in a pending change state and needs to be reviewed in Listings.
The data returned under address and location is the values that are presented on the location details in listings, values yet to be applied are returned under the pendingChanges node. A change can either be applied or ignored in listings depending on the quality of the data sent.
startDate and endDate are now named start and end, the format has changed to be YYYY-MM-DD
Links to cover and profile images on facebook & google.
Foursquare and Factual have merged. Foursquare is removed from network since Foursquare no longer has a 2-way API.
PinMeTo API v2 is JSON API for get and update information about your locations.
- AccountId,
<<account_id>> - App id,
<<app_id>> - App Secret,
<<app_secret>>
- OpeningDate, temporarilyClosedUntil: formatted YYYY-MM-DD, to unset send '' or null
- SpecialOpenHours: use ISO 8601 formatting of date strings
ie. YYYY-MM-DD
- When setting closed dates (
isClosed: true) an entry is needed for each day that is closed. - Cannot last longer than 24 hours, must end at latest 1159.
- When setting closed dates (
- An accesstoken is valid for 1 hour so do cache it
- When using this api to build a storelocator do cache the result on your webserver and avoid calling
/locationsfor every search
You are allowed to do 3600 request/hour. In the header from each response you get information about your ratelimit
HEADER
x-ratelimit-limit: '3600'
x-ratelimit-reset: '1452787466'
x-ratelimit-remaining: '3599'
content-type: 'application/json; charset=utf-8'
content-length: '2564'
date: 'Thu, 14 Jan 2016 15:04:25 GMT'
If the account have custom data enabled you can get, set and update that data
If you have your access token you can get information about all your locations.
https://api.pinmeto.com/v2/<<account_id>>/locations?access_token=YOUR_ACCESS_TOKEN
- access_token = (String) your access token to validate your request | required
- pagesize = (Number) Number of locations that the request returns, default 100, max 250 | optional
- next = (String) Id of starting point to next page
- before = (String) Id of starting point to previous page
-
paging: (Object)
- next: (String) | Url to get next page with locations
- before: (String) | Url to get previous page with locations
-
data: (Array)
- name: (String)
- storeId: (String)
-
description: (Object)
- short: (String, max length 240)
- long: (String, max length 750)
- openingDate: (String)
-
contact: (Object)
- phone: (String)
- homepage: (String)
- email: (String)
-
address: (Object)
- street: (String)
- zip: (String)
- city: (String)
- country: (String)
- permanentlyClosed: (Boolean)
- temporarilyClosedUntil: (ISO Date string, YYYY-MM-DD)
- isAlwaysOpen: (Boolean)
- locationDescriptor: (String)
-
location: (Object)
- lat: (Number)
- lon: (Number)
-
openHours: (Object)
-
mon: (Object)
- state: (String)
-
span: (Array)
- open: (String)
- close: (String)
- ...
-
sun: (Object)
- state: (String)
-
span: (Array)
- open: (String)
- close: (String)
-
mon: (Object)
-
specialOpenHours:
(Array)
- label: (String)
- start: (ISO Date string, YYYY-MM-DD)
- end: (ISO Date string, YYYY-MM-DD)
- openTime: (String)
- endTime: (String)
- isClosed: (Boolean)
-
network: (Object)
-
facebook: (Object)
- pageId: (String)
- link: (String)
- profileImage: (String)
- coverImage: (String)
-
google: (Object)
- placeId: (String)
- link: (String)
- newReviewUrl: (String)
- profileImage: (String)
- coverImage: (String)
-
bing: (Object)
- link: (String)
-
facebook: (Object)
- googleName: (String) - if google custom name is enabled
- facebookName: (String) - if facebook custom name is enabled
- wifiSsid: (String, max length 32)
-
pendingChanges: (Object)
-
address: (Object)
- street: (String)
- zip: (String)
- city: (String)
- country: (String)
-
location : (Object)
- lat: (Number)
- lon: (Number)
-
address: (Object)
- customData: (Object, depends on your custom data definition)
{
"data": [
{
"name": "Name of location"
"storeId": "api-location",
"description": {
"short": "The location marketing platform for chain businesses.",
"long": "The location marketing platform for chain businesses."
},
"openingDate": "2013-02-01",
"contact": {
"phone": "+46 70 2336879",
"homepage": "http://www.google.com",
"email": "test@pinmeto.com"
},
"address": {
"street": "testgatan 4",
"zip": "217 41",
"city": "Malmö",
"country": "Sweden"
},
"locationDescriptor": "API locationDescriptor",
"location": {
"lat": 59.333755678571,
"lon": 18.056143908447
},
"openHours": {
"mon": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"tue": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"wed": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"thu": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1500"
}
]
},
"fri": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"sat": {
"state": "Closed",
"span": []
},
"sun": {
"state": "Closed",
"span": []
}
},
"specialOpenHours": [
{
"start": "2017-05-28",
"end": "2017-05-28",
"openTime": "1000",
"closeTime": "2000",
"isClosed": false,
"label": "Mothers day"
},
{
"start": "2017-07-04",
"end": "2017-07-04",
"openTime": "0000",
"closeTime": "0000",
"isClosed": true,
"label": "Independence day"
},
{
"start": "2017-11-24",
"end": "2017-11-24",
"openTime": "0000",
"closeTime": "2400",
"isClosed": false,
"label": "Black friday"
}
],
"network": {
"facebook": {
"pageId": "1605390276379843",
"link": "https://www.facebook.com/Pinmeto.Malmo/"
"profileImage": "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-1/p720x720/78063569_2439243212994541_4444163125444345856_o.jpg?_nc_cat=103&_nc_sid=0c64ff&_nc_ohc=empRK1Pb1KoAX900cWE&_nc_ht=scontent-arn2-1.xx&tp=6&oh=76e3097e2e0b63b528bc355b9ea07083&oe=5F9BB09B",
"coverImage": "https://scontent-arn2-2.xx.fbcdn.net/v/t1.0-9/s720x720/103323620_2607531456165715_1759303419147657987_o.jpg?_nc_cat=100&_nc_sid=dd9801&_nc_ohc=ZfPnPPzbMUEAX-sbjis&_nc_ht=scontent-arn2-2.xx&tp=7&oh=0b2ae55c8118bf0ecdd4839677e1528b&oe=5F9A4ADA"
},
"google": {
"placeId": "ChIJpbpzuV6hU0YRG49xL3Bp8m8",
"link": "https://maps.google.com/?cid=8066625813127204635",
"newReviewUrl": "https://search.google.com/local/writereview?placeid=ChIJF9eIJ12dX0YRogcSnTh1G6s",
"profileImage": "https://lh3.googleusercontent.com/lCki9MaIOKvhpvwBh_AExUE3_liYXv-8vyr2RH4EPrkSt90__vZImAKkzllwq85JV3PZtUxl8dWivdc7=s0",
"coverImage": "https://lh3.googleusercontent.com/FrmkuiTtzLt8LbiPHHcoJlJtK1Ab21YahnQKRjs-5Nd7cv_yRwigjodcWy59xNE_frU-9dqT90e5WuWd=s0"
},
"wifiSsid": "pinmeto",
"pendingChanges": {
"address": {
"street": "Adelgatan 11"
},
"location": {
"lon": 13.00093,
"lat": 55.60736
}
}
},
...
{
"name": "Name of location",
"storeId": "store-id",
"description": {
"short": "The location marketing platform for chain businesses.",
"long": "The location marketing platform for chain businesses."
},
"contact": {
"phone": "+46 70 2336879",
"homepage": "http://www.google.com",
"email": "test@pinmeto.com"
},
"address": {
"street": "testgatan 2",
"zip": "217 41",
"city": "Malmö",
"country": "Sweden"
},
"locationDescriptor": "API locationDescriptor",
"location": {
"lat": 9.333755678571002,
"lon": 8.056143908447002
},
"openHours": {
"mon": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"tue": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"wed": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"thu": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1500"
}
]
},
"fri": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"sat": {
"state": "Closed",
"span": []
},
"sun": {
"state": "Closed",
"span": []
}
},
"specialOpenHours": [
{
"start": "2017-05-28",
"end": "2017-05-28",
"openTime": "1000",
"closeTime": "2000",
"isClosed": false,
"label": "Mothers day"
},
{
"start": "2017-07-04",
"end": "2017-07-04",
"openTime": "0000",
"closeTime": "0000",
"isClosed": true,
"label": "Independence day"
},
{
"start": "2017-11-24",
"end": "2017-11-24",
"openTime": "0000",
"closeTime": "2400",
"isClosed": false,
"label": "Black friday"
}
],
"network": {
"facebook": {
"pageId": "1605390276379843",
"link": "https://www.facebook.com/Pinmeto.Malmo/",
"profileImage": "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-1/p720x720/78063569_2439243212994541_4444163125444345856_o.jpg?_nc_cat=103&_nc_sid=0c64ff&_nc_ohc=empRK1Pb1KoAX900cWE&_nc_ht=scontent-arn2-1.xx&tp=6&oh=76e3097e2e0b63b528bc355b9ea07083&oe=5F9BB09B",
"coverImage": "https://scontent-arn2-2.xx.fbcdn.net/v/t1.0-9/s720x720/103323620_2607531456165715_1759303419147657987_o.jpg?_nc_cat=100&_nc_sid=dd9801&_nc_ohc=ZfPnPPzbMUEAX-sbjis&_nc_ht=scontent-arn2-2.xx&tp=7&oh=0b2ae55c8118bf0ecdd4839677e1528b&oe=5F9A4ADA"
},
"google": {
"placeId": "ChIJpbpzuV6hU0YRG49xL3Bp8m8",
"link": "https://maps.google.com/?cid=8066625813127204635",
"newReviewUrl": "https://search.google.com/local/writereview?placeid=ChIJF9eIJ12dX0YRogcSnTh1G6s",
"profileImage": "https://lh3.googleusercontent.com/lCki9MaIOKvhpvwBh_AExUE3_liYXv-8vyr2RH4EPrkSt90__vZImAKkzllwq85JV3PZtUxl8dWivdc7=s0",
"coverImage": "https://lh3.googleusercontent.com/FrmkuiTtzLt8LbiPHHcoJlJtK1Ab21YahnQKRjs-5Nd7cv_yRwigjodcWy59xNE_frU-9dqT90e5WuWd=s0"
},
"googleName": "custom google name",
"facebookName": "custom fb name",
"wifiSsid": "pinmeto"
}
],
"paging": {
before: "https://api.pinmeto.com/v2/pinmeto/locations?before=569649b49c5ec8685e11175e"
next: "https://api.pinmeto.com/v2/pinmeto/locations?next=569652a91151474860f5e173"
}
}curl -X GET https://api.pinmeto.com/v2/<<account_id>>/locations/?access_token=YOUR_ACCESS_TOKEN
If you have your access token you can get information about one location
https://api.pinmeto.com/v2/<<account_id>>/locations/YOUR_STORE_ID/?access_token=YOUR_ACCESS_TOKEN
- access_token = (String) your access token to validate your request | required
-
data: (Object)
- name: (String)
- storeId: (String)
-
description: (Object)
- short: (String, max length 240)
- long: (String, max length 750)
- text (deprecated, use shortDescription) : (String)
-
contact: (Object)
- phone: (String)
- homepage: (String)
- email: (String)
-
address: (Object)
- street: (String)
- zip: (String)
- city: (String)
- country: (String)
- permanentlyClosed: (Boolean)
- temporarilyClosedUntil: (ISO Date string, YYYY-MM-DD)
- isAlwaysOpen: (Boolean)
- locationDescriptor: (String)
-
location: (Object)
- lat: (Number)
- lon: (Number)
-
openHours: (Object)
-
mon: (Object)
- state: (String)
-
span: (Array)
- open: (String)
- close: (String)
- ...
-
sun: (Object)
- state: (String)
-
span: (Array)
- open: (String)
- close: (String)
-
mon: (Object)
-
specialOpenHours:
(Array)
- label: (String)
- start: (ISO Date string, YYYY-MM-DD)
- end: (ISO Date string, YYYY-MM-DD)
- openTime: (String)
- endTime: (String)
- isClosed: (Boolean)
-
network: (Object)
-
facebook: (Object)
- pageId: (String)
- link: (String)
- profileImage: (String)
- coverImage: (String)
-
google: (Object)
- placeId: (String)
- link: (String)
- newReviewUrl: (String)
- profileImage: (String)
- coverImage: (String)
-
bing: (Object)
- link: (String)
-
facebook: (Object)
- googleName: (String) - if google custom name is enabled
- facebookName: (String) - if facebook custom name is enabled
- wifiSsid: (String, max length 32)
-
pendingChanges: (Object)
-
address: (Object)
- street: (String)
- zip: (String)
- city: (String)
- country: (String)
-
location : (Object)
- lat: (Number)
- lon: (Number)
- customData: (Object, depends on your custom data definition)
-
address: (Object)
{
"data": {
"name": "Name of location"
"storeId": "1337",
"description": {
"short": "The location marketing platform for chain businesses.",
"long": "The location marketing platform for chain businesses.",
},
"contact": {
"phone": "+46 739 60 61 40",
"email": "hello@pinmeto.com",
"homepage": "http://www.pinmeto.com/"
},
"permanentlyClosed": false,
"temporarilyClosedUntil": "2020-10-30",
"isAlwaysOpen": false,
"address": {
"street": "testgatan 2",
"zip": "211 19",
"city": "Malmö",
"country": "Sweden"
},
"locationDescriptor": "Malmö",
"location": {
"lat": 55.6105169,
"lon": 12.9936406
},
"openHours": {
"mon": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"tue": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"wed": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"thu": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1500"
}
]
},
"fri": {
"state": "Open",
"span": [
{
"open": "0900",
"close": "1700"
}
]
},
"sat": {
"state": "Closed",
"span": []
},
"sun": {
"state": "Closed",
"span": []
}
},
"specialOpenHours": [
{
"start": "2017-05-28",
"end": "2017-05-28",
"openTime": "1000",
"closeTime": "2000",
"isClosed": false,
"label": "Mothers day"
},
{
"start": "2017-07-04",
"end": "2017-07-04",
"openTime": "0000",
"closeTime": "0000",
"isClosed": true,
"label": "Independence day"
},
{
"start": "2017-11-24",
"end": "2017-11-24",
"openTime": "0000",
"closeTime": "2400",
"isClosed": false,
"label": "Black friday"
}
],
"network": {
"facebook": {
"pageId": "1605390276379843",
"link": "https://www.facebook.com/Pinmeto.Malmo/",
"profileImage": "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-1/p720x720/78063569_2439243212994541_4444163125444345856_o.jpg?_nc_cat=103&_nc_sid=0c64ff&_nc_ohc=empRK1Pb1KoAX900cWE&_nc_ht=scontent-arn2-1.xx&tp=6&oh=76e3097e2e0b63b528bc355b9ea07083&oe=5F9BB09B",
"coverImage": "https://scontent-arn2-2.xx.fbcdn.net/v/t1.0-9/s720x720/103323620_2607531456165715_1759303419147657987_o.jpg?_nc_cat=100&_nc_sid=dd9801&_nc_ohc=ZfPnPPzbMUEAX-sbjis&_nc_ht=scontent-arn2-2.xx&tp=7&oh=0b2ae55c8118bf0ecdd4839677e1528b&oe=5F9A4ADA"
},
"google": {
"placeId": "ChIJpbpzuV6hU0YRG49xL3Bp8m8",
"link": "https://maps.google.com/?cid=8066625813127204635",
"newReviewUrl": "https://search.google.com/local/writereview?placeid=ChIJF9eIJ12dX0YRogcSnTh1G6s",
"profileImage": "https://lh3.googleusercontent.com/lCki9MaIOKvhpvwBh_AExUE3_liYXv-8vyr2RH4EPrkSt90__vZImAKkzllwq85JV3PZtUxl8dWivdc7=s0",
"coverImage": "https://lh3.googleusercontent.com/FrmkuiTtzLt8LbiPHHcoJlJtK1Ab21YahnQKRjs-5Nd7cv_yRwigjodcWy59xNE_frU-9dqT90e5WuWd=s0"
},
},
"googleName": "custom google name",
"facebookName": "custom fb name",
"wifiSsid": "pinmeto",
"pendingChanges": {
"address": {
"street": "Adelgatan 11"
},
"location": {
"lon": 13.00093,
"lat": 55.60736
}
}
}
}curl -X GET https://api.pinmeto.com/v2/<<account_id>>/locations/YOUR_STORE_ID/?access_token=YOUR_ACCESS_TOKEN
You need to include your access_token in the Authorization header ("Bearer " + YOUR_ACCESS_TOKEN'). Or add access_token : YOUR_ACCESS_TOKEN in the body , but be sure that your request headers is Content-Type: application/x-www-form-urlencoded
https://api.pinmeto.com/v2/<<account_id>>/locations/YOUR_STORE_ID
-
description: (Object)
- short: (String, max length 240)
- long: (String, max length 750)
-
contact: (Object)
- phone: (String)
- homepage: (String)
- email: (String)
-
address: (Object)
- street: (String)
- zip: (String)
- city: (String)
- country: (String)
- permanentlyClosed: (Boolean)
- temporarilyClosedUntil: (ISO Date string, YYYY-MM-DD)
- isAlwaysOpen: (Boolean)
- locationDescriptor: (String)
-
location: (Object)
- lat: (Number)
- lon: (Number)
-
openHours: (Object)
-
mon: (Object)
- state: (String)
-
span: (Array)
- open: (String)
- close: (String)
- ...
-
sun: (Object)
- state: (String)
-
span: (Array)
- open: (String)
- close: (String)
-
mon: (Object)
-
specialOpenHours:
(Array)
- label: (String)
- start: (ISO Date string, YYYY-MM-DD)
- end: (ISO Date string, YYYY-MM-DD)
- openTime: (String)
- endTime: (String)
- isClosed: (Boolean)
- googleName: (String) - if google custom name is enabled
- facebookName: (String) - if facebook custom name is enabled
- wifiSsid: (String, max length 32)
- customData: (Object, depends on your custom data definition)
PUT /v2/<<account_id>>/locations/YOUR_STORE_ID HTTP/1.1
Authorization: 'Bearer 77813e40da005550c53bd8e06fc59e8ae76e2694'
Host: https://api.pinmeto.com
Content-Type: application/json
Body:
{
"locationDescriptor": "API locationDescriptor",
"address": {
"street": "testgatan 4",
"zip": "217 41",
"city": "Malmö",
"country": "Sweden"
},
"location": {
"lat": 59.333755678571,
"lon": 18.056143908447
},
"contact": {
"phone": "+46 70 2336879",
"email": "test@example.com",
"homepage": "http://www.google.com"
}
}
PUT /v2/<<<account_id>>>/locations/YOUR_STORE_ID HTTP/1.1
Host: https://api.pinmeto.com
Content-Type: 'application/x-www-form-urlencoded'
Body:
{
access_token: 'e7ecec1fd6b460fc2e2d12d8890a13368b497327',
locationDescriptor: 'API locationDescriptor',
address: {
street: 'testgatan 4',
zip: '217 41',
city: 'Malmö',
country: 'Sweden'
},
location: {
lat: 59.333755678571,
lon: 18.056143908447
},
contact: {
phone: '+46 70 2336879',
email: 'test@example.com',
homepage: 'http://www.google.com'
}
}
curl -X PUT -H "Content-Type: application/x-www-form-urlencoded" -d 'locationDescriptor'='Malmoe' -d 'specialOpenHours'='[{"start": "2018-12-31","end":"2018-12-31","openTime":"1100", "closeTime": "1500", "isClosed": false, "label":"New Years Eve"}]' https://api.pinmeto.com/v2/<<account_id>>/locations/YOUR_STORE_ID/?access_token=YOUR_ACCESS_TOKEN
You need to include your access_token in the Authorization header ("Bearer " + YOUR_ACCESS_TOKEN'). Or add access_token : YOUR_ACCESS_TOKEN in the body , but be sure that your request headers is Content-Type: application/x-www-form-urlencoded
https://api.pinmeto.com/v2/<<account_id>>/locations
- name: (String)
- storeId: (String) required
-
description: (Object)
- short: (String, max length 240)
- long: (String, max length 750)
- text (deprecated, use shortDescription) : (String)
-
contact: (Object) required
- phone: (String)
- homepage: (String)
- email: (String)
-
address: (Object) required
- street: (String)
- zip: (String)
- city: (String)
- country: (String)
- permanentlyClosed: (Boolean)
- temporarilyClosedUntil: (ISO Date string, YYYY-MM-DD)
- isAlwaysOpen: (Boolean)
- locationDescriptor: (String)
-
location: (Object) required
- lat: (Number)
- lon: (Number)
-
openHours: (Object)
-
mon: (Object)
- state: (String)
-
span: (Array)
- open: (String)
- close: (String)
- ...
-
sun: (Object)
- state: (String)
-
span: (Array)
- open: (String)
- close: (String)
-
mon: (Object)
-
specialOpenHours:
(Array)
- label: (String)
- start: (ISO Date string, YYYY-MM-DD)
- end: (ISO Date strin, YYYY-MM-DD)
- openTime: (String)
- endTime: (String)
- isClosed: (Boolean)
- googleName: (String) - if google custom name is enabled
- facebookName: (String) - if facebook custom name is enabled
- wifiSsid: (String, max length 32)
- customData: (Object, depends on your custom data definition)
POST /v2/<<account_id>>/locations HTTP/1.1
Authorization: 'Bearer 77813e40da005550c53bd8e06fc59e8ae76e2694'
Host: https://api.pinmeto.com
Content-Type: application/json
Body:
{
"storeId": "store-id",
"locationDescriptor": "API locationDescriptor",
"address": {
"street": "testgatan 4",
"zip": "217 41",
"city": "Malmö",
"country": "Sweden"
},
"location": {
"lat": 59.333755678571,
"lon": 18.056143908447
},
"contact": {
"phone": "+46 70 2336879",
"email": "test@example.com",
"homepage": "http://www.google.com"
}
}
POST /v2/<<account_id>>/locations HTTP/1.1
Host: https://api.pinmeto.com
Content-Type: 'application/x-www-form-urlencoded'
Body:
{
access_token: 'token'
storeId: 'store-id',
locationDescriptor: 'API locationDescriptor',
address: {
street: 'testgatan 4',
zip: '217 41',
city: 'Malmö',
country: 'Sweden'
},
location: {
lat: 59.333755678571,
lon: 18.056143908447
},
contact: {
phone: '+46 70 2336879',
email: 'test@example.com',
homepage: 'http://www.google.com'
}
}
curl -H "Content-Type: application/json" --data '{ "storeId": "0987654", "locationDescriptor": "API locationDescriptor","address": {"street": "testgatan 4","zip": "217 41","city": "Malmö","country": "Sweden"},"location": {"lat": 59.333755678571,"lon": 18.056143908447},"contact": {"phone": "+46 70 2336879","email": "test@example.com","homepage": "http://www.google.com"}}' https://api.pinmeto.com/v2/<<account_id>>/locations/?access_token=YOUR_ACCESS_TOKEN
If a querystring parameter upsert=true is passed to Create location it will check if a location with the storeId in the request body already exist, if it does it will do an update instead. If the location doesn't exist it will be created.
https://api.pinmeto.com/v2/<<account_id>>/locations?upsert=true
Create location:
400: StoreId must be unique
400: (If validation fails there is a number of validation errors that can be returned)
422: Missing required property, expected "${required}" to be present.
500: Location already exists
Update location:
400: No properties to update, wrong content-type?
400: (If validation fails there is a number of validation errors that can be returned)
404: No location found
Get locations:
404: Site not found
Get location:
404: Location with storeId ${storeId} not found
If an error not covered by these messages occurs, a status code of 500 will be returned with the message “An error occurred.”