Shop.app API endpoint
Returns Shop.app autocomplete suggestions for the required `query`. `limit` defaults to 10 and is capped at 20. Each suggestion is either a search query or a shop, with its `text`, `type`, URL and, for shops, the shop handle, name, rating and image.
/shop-app/suggestionsReturns Shop.app autocomplete suggestions from the public web search flow.
Query parameters:
query: required. Search keywords. Example: sneakers.limit: optional integer. Maximum suggestions to return. Default: 10; maximum: 20.Notable response behavior:
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| text | 10 | “Sneakers Plus” and 9 other values |
| type | 10 | query (6), shop (4) |
| url | 10 | shop.app |
| shop_id | 4 | |
| shop_name | 4 | “Sneakers Plus” and 3 other values |
| shop_handle | 4 | |
| image | 3 | cdn.shopify.com |
| rating | 4 | 4.44 to 4.92, median 4.76 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | Yes | Search query | sneakers | |
| limit | integer | No | 10 and supports up to 20 | Maximum suggestions, defaults to 10 and supports up to 20 | 10 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/shop-app/suggestions?query=sneakers&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "sneakers",
"limit": 2,
"suggestions": [
{
"text": "sneakers",
"type": "query",
"url": "https://shop.app/search/results?query=sneakers"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/shopapp.suggestionsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | shopapp.SuggestResponse | No | ||||
| data.limit | integer | No | 10 | Maximum number of suggestions requested. | ||
| data.query | string | No | sneakers | Partial search text that suggestions were requested for. | ||
| data.suggestions | array | No | Search suggestions returned for the text. | |||
| data.suggestions[].image | string | No | URL of the shop logo. Set for `shop` suggestions. | |||
| data.suggestions[].rating | number | No | 4.79 | Average shopper rating of the shop. Set for `shop` suggestions. | ||
| data.suggestions[].shop_handle | string | No | gr21z45he0 | Shop.app handle of the shop. Set for `shop` suggestions. | ||
| data.suggestions[].shop_id | string | No | 365323 | Shop.app ID of the shop. Set for `shop` suggestions. | ||
| data.suggestions[].shop_name | string | No | Sneakers Plus | Name of the shop. Set for `shop` suggestions. | ||
| data.suggestions[].text | string | No | sneakers | Suggested search text or shop name. | ||
| data.suggestions[].type | string | No | query | Kind of suggestion: `query` or `shop`. | ||
| data.suggestions[].url | string | No | https://shop.app/search/results?query=sneakers | Shop.app URL of the search results or shop page for the suggestion. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/suggestions?query=sneakers&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"