Shop.app API endpoint
Returns the public retail locations of a Shop.app merchant by shop handle, up to `limit` (default 10, max 50). Each location has its id, name, latitude and longitude, and street address; the response also carries the total count and a cursor for the next page. A shop with no public retail locations returns an error.
/shop-app/shops/{handle}/locationsPath parameters:
handle: required. Shop.app shop handle. Example: marcnolan.Query parameters:
limit: optional integer. Maximum locations to return. Default: 10; maximum: 50.Notable response behavior:
| Field | Filled in, of 2 checked | Values in the sample |
|---|---|---|
| id | 2 | |
| name | 2 | “Store - Chicago” and 1 other value |
| latitude | 2 | |
| longitude | 2 | |
| address | 2 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| handle (path) | string | Yes | Shop handle | marcnolan | |
| limit | integer | No | 10 and supports up to 50 | Maximum locations, defaults to 10 and supports up to 50 | 10 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/shop-app/shops/marcnolan/locations?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"shop_handle": "marcnolan",
"locations": [
{
"name": "NYC",
"latitude": 40.7205232,
"longitude": -73.9961032,
"address": {
"city": "New York",
"country": "US"
}
}
]
}
}Request schema
No body schema
Response schema
#/definitions/shopapp.shopLocationsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | shopapp.ShopLocationsResponse | No | ||||
| data.limit | integer | No | 10 | Maximum number of locations requested. | ||
| data.locations | array | No | Retail locations of the shop. | |||
| data.locations[].address | object | No | Street address of the location. | |||
| data.locations[].address.address1 | string | No | 175b Mott Street | First line of the street address. | ||
| data.locations[].address.address2 | string | No | Second line of the street address. | |||
| data.locations[].address.city | string | No | New York | City of the address. | ||
| data.locations[].address.country | string | No | US | Country of the address, for example `US`. | ||
| data.locations[].address.postal_code | string | No | 10012 | Postal code of the address. | ||
| data.locations[].address.zone_code | string | No | NY | State or region code of the address, for example `NY`. | ||
| data.locations[].id | string | No | gid://shopify/Location/78620459087 | Shopify location ID, for example `gid://shopify/Location/78620459087`. | ||
| data.locations[].latitude | number | No | 40.7205232 | Latitude of the location, in degrees. | ||
| data.locations[].longitude | number | No | -73.9961032 | Longitude of the location, in degrees. | ||
| data.locations[].name | string | No | NYC | Name of the location, for example `NYC`. | ||
| data.next_cursor | string | No | Cursor Shop.app returns for the next page of locations. | |||
| data.shop_handle | string | No | marcnolan | Shop.app handle of the shop. | ||
| data.shop_id | string | No | 186720 | Shop.app ID of the shop. | ||
| data.total_count | integer | No | 2 | Total number of locations the shop has. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/shop-app/shops/marcnolan/locations?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"