Kroger API endpoint
Returns the search-refinement chips Kroger shows above its own results for a query (e.g. "chips ahoy" returns "chewy", "chunky", "thins"). Each tag carries the full follow-on query it maps to, so results feed straight back into kroger-search.
/kroger/related-tagsQuery parameters:
query (required) — the search term to get refinement tags for.location_id (optional) — Kroger store/location id that scopes results.
Defaults to a confirmed-working store id when omitted.Notable response behavior:
query on each tag is the complete search string to run next, not just
the tag appended — use it directly as /kroger/search's query.position is Kroger's own display order, preserved as returned.source is Kroger's own provenance label for the tag (e.g. CURATED),
passed through rather than constrained to a fixed set.related_tags list — a
success, not an error.| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| tag | 10 | “chewy” and 9 other values |
| query | 10 | “chips ahoy chewy” and 9 other values |
| position | 10 | 0 to 1,000, median 4 |
| source | 10 | CURATED (9), ORGANIC (1) |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | Yes | Search term to get refinement tags for | chips ahoy | |
| location_id | string | No | Kroger store/location id that scopes results | 03500917 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kroger/related-tags?query=chips+ahoy" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "chips ahoy",
"location_id": "03500917",
"count": 3,
"related_tags": [
{
"tag": "chewy",
"query": "chips ahoy chewy",
"position": 0,
"source": "CURATED"
},
{
"tag": "chunky",
"query": "chips ahoy chunky",
"position": 1,
"source": "CURATED"
},
{
"tag": "mini",
"query": "chips ahoy mini",
"position": 2,
"source": "CURATED"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/kroger.relatedTagsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kroger.RelatedTagsResponse | No | ||||
| data.count | integer | No | ||||
| data.location_id | string | No | ||||
| data.query | string | No | ||||
| data.related_tags | array | No | ||||
| data.related_tags[].position | integer | No | ||||
| data.related_tags[].query | string | No | ||||
| data.related_tags[].source | string | No | ||||
| data.related_tags[].tag | string | No | ||||
| 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/kroger/related-tags?query=chips+ahoy" \
-H "x-api-key: $CRAWLORA_API_KEY"