Kroger API endpoint
Returns a page of Kroger's public digital coupons: savings value, requirement text and quantity, brand, categories, redemption modalities, promotional tags, image, and start/end/expiry dates. Optionally narrow to one product (upc) or brand. This is the anonymous public coupon catalog -- per-account clipping state is not returned.
/kroger/couponsQuery parameters:
upc (optional) — narrow to coupons applying to one Kroger product. Must
be numeric; a non-numeric value returns 400.brand (optional) — narrow to one brand's coupons.location_id (optional) — Kroger store/location id that scopes coupons.
Defaults to a confirmed-working store id when omitted.page (optional) — one-based result page, default 1.page_size (optional) — coupons per page, 1-200, default 50. Values
above 200 are capped rather than rejected.Notable response behavior:
value and savings are the coupon's monetary value in dollars;
requirement_quantity is how many qualifying items must be purchased.modalities lists where the coupon can be redeemed (e.g. PICKUP,
DELIVERY, IN_STORE).start_date/end_date are the display window; expiration_date is the
hard expiry, which is usually later.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| kroger_coupon_number | 20 | 800,000,257,535 to 800,000,272,146, median 800,000,265,406 |
| title | 20 | “Save $30.00 When You Spend $75.00” and 16 other values |
| short_description | 20 | “$30 off your first Pickup or Delivery Order of $75 +” and 19 other values |
| requirement_description | 20 | median 266 characters |
| requirement_quantity | 20 | 1 to 75, median 1 |
| brand | 20 | “Other” and 11 other values |
| value | 20 | 0.88 to 30, median 4 |
| savings | 20 | 0 to 30, median 0 |
| type | 20 | STANDARD in all 20 |
| status | 20 | unclipped in all 20 |
| image_url | 20 | cdnws.softcoin.com |
| categories | 20 | median 1 entry |
| modalities | 20 | median 3 entries |
| savings_tags | 20 | median 2 entries |
| redemptions_allowed | 20 | -1 to 5, median -1 |
| total_downloads | 20 | 84,025 to 3,205,332, median 676,333 |
| start_date | 20 | 2026-10-01 to 2026-10-12 |
| end_date | 20 | 2026-10-14 to 2026-11-01 |
| expiration_date | 20 | 2026-10-14 to 2026-11-15 |
| display_description | 13 | “$1.99 Lay's, Kettle Cooked or Tostitos Cantina” and 12 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| upc | string | No | Narrow to coupons applying to one Kroger product | 0001111060933 | |
| brand | string | No | Narrow to one brand's coupons | Pillsbury | |
| location_id | string | No | Kroger store/location id that scopes coupons | 03500917 | |
| page | integer | No | One-based result page Minimum: 1. | ||
| page_size | integer | No | Coupons per page, 1-200 Minimum: 1. Maximum: 200. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kroger/coupons?page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"location_id": "03500917",
"page": 1,
"page_size": 50,
"count": 1,
"coupons": [
{
"id": "3899866",
"kroger_coupon_number": "800000011934",
"title": "Save $1.00 on 2",
"short_description": "SAVE $1.00 on 2 Pillsbury Refrigerated and Frozen Products",
"display_description": "Pillsbury Refrigerated and Frozen Products",
"requirement_description": "when you buy TWO (2) Pillsbury Refrigerated or Frozen Baked Goods Products, any flavor/variety",
"requirement_quantity": 2,
"brand": "Pillsbury",
"value": 1,
"savings": 1,
"type": "STANDARD",
"status": "unclipped",
"image_url": "https://cdnws.softcoin.com/mediaCache/ecoupon_4918801.jpg",
"categories": [
"Bakery",
"Frozen",
"Breakfast"
],
"modalities": [
"PICKUP",
"DELIVERY",
"IN_STORE"
],
"savings_tags": [
{
"name": "General Savings",
"display_name": "General Savings"
}
],
"redemptions_allowed": 1,
"total_downloads": 1107980,
"start_date": "2025-03-01T05:00:00Z",
"end_date": "2025-04-01T03:59:59Z",
"expiration_date": "2025-04-15T03:59:59Z"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/kroger.couponsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kroger.CouponsResponse | No | ||||
| data.brand | string | No | ||||
| data.count | integer | No | ||||
| data.coupons | array | No | ||||
| data.coupons[].brand | string | No | ||||
| data.coupons[].categories | array | No | ||||
| data.coupons[].display_description | string | No | ||||
| data.coupons[].end_date | string | No | ||||
| data.coupons[].expiration_date | string | No | ||||
| data.coupons[].id | string | No | ||||
| data.coupons[].image_url | string | No | ||||
| data.coupons[].kroger_coupon_number | string | No | ||||
| data.coupons[].modalities | array | No | ||||
| data.coupons[].redemptions_allowed | integer | No | ||||
| data.coupons[].requirement_description | string | No | ||||
| data.coupons[].requirement_quantity | integer | No | ||||
| data.coupons[].savings | number | No | ||||
| data.coupons[].savings_tags | array | No | ||||
| data.coupons[].savings_tags[].description | string | No | ||||
| data.coupons[].savings_tags[].display_name | string | No | ||||
| data.coupons[].savings_tags[].name | string | No | ||||
| data.coupons[].short_description | string | No | ||||
| data.coupons[].start_date | string | No | ||||
| data.coupons[].status | string | No | ||||
| data.coupons[].title | string | No | ||||
| data.coupons[].total_downloads | integer | No | ||||
| data.coupons[].type | string | No | ||||
| data.coupons[].value | number | No | ||||
| data.location_id | string | No | ||||
| data.page | integer | No | ||||
| data.page_size | integer | No | ||||
| data.upc | 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/coupons?page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"