Kroger API endpoint
Returns product detail for one Kroger item: title, description, image, brand, category trail, price/availability, and rating.
/kroger/productQuery parameters:
upc (required) — the numeric UPC/id, the last path segment of a Kroger
product page URL (e.g. 0064519402151 from
kroger.com/p/some-product-slug/0064519402151). A search result's upc
field from /kroger/search is usable directly here.Notable response behavior:
offer.availability is one of in_stock, out_of_stock,
limited_availability, preorder, discontinued, sold_out, or
unknown.brand, image_url, categories, offer, rating_value, and
rating_count are omitted when Kroger's own page does not carry them for
a given product.upc that does not resolve to a real product returns 404.upc returns 400 before any upstream request is made.| Field | In the sample | Value in the sample |
|---|---|---|
| upc | Has a value | |
| url | Has a value | kroger.com |
| title | Has a value | “Edward & Sons® Not-Chick'n Bouillon Cubes” |
| description | Empty | |
| image_url | Has a value | kroger.com |
| offer.price | Has a value | 0 |
| offer.currency | Has a value | “USD” |
| offer.availability | Empty |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| upc | string | Yes | Kroger product UPC/id (the last path segment of the product page URL) | 0064519402151 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kroger/product?upc=0064519402151" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"upc": "0064519402151",
"url": "https://www.kroger.com/p/-/0064519402151",
"title": "Bobbo SE3880240 Watermelon Gordo Birdhouse, 1",
"description": "Songbird Essentials adds color whimsy to any garden with our beautifully detailed wooden Bird Houses...",
"image_url": "https://www.kroger.com/product/images/medium/front/0064519402151",
"categories": [
"Pet",
"Bird Care"
],
"offer": {
"price": 35.02,
"currency": "USD",
"availability": "in_stock"
}
}
}Request schema
No body schema
Response schema
#/definitions/kroger.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kroger.ProductResponse | No | ||||
| data.brand | string | No | ||||
| data.categories | array | No | ||||
| data.description | string | No | ||||
| data.image_url | string | No | ||||
| data.offer | kroger.ProductOffer | No | ||||
| data.offer.availability | string | No | ||||
| data.offer.currency | string | No | ||||
| data.offer.original_price | number | No | ||||
| data.offer.price | number | No | ||||
| data.rating_count | integer | No | ||||
| data.rating_value | number | No | ||||
| data.title | string | No | ||||
| data.upc | string | No | ||||
| data.url | string | No | ||||
| 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/kroger/product?upc=0064519402151" \
-H "x-api-key: $CRAWLORA_API_KEY"