# Kroger Search API Documentation

<p><strong>Kroger Search API</strong> searches grocery products on kroger.com. Each item has the name, brand, size, price, sale price when on sale, regular price, unit price (for example per fluid ounce), images, categories, diets, rating, stock level, pickup and delivery options and the aisle.</p><p>Search returns the first page only, with up to 24 products. The <code>page</code> parameter accepts only 1. A higher page answers 422, because the source has no further pages. Kroger picks the store from the network location of the request, so prices, sale prices and stock can differ between calls. Prices are in US dollars.</p><p>Use the <code>id</code> of an item (its UPC) with the product route for the ingredients, allergens and the nutrition panel. A search without hits returns an empty list. Costs 1 credit per successful request with results. Empty results and failed requests are free.</p>

- **Documentation:** [https://scrappa.co/docs/kroger-api/kroger_search](https://scrappa.co/docs/kroger-api/kroger_search)
- **API group:** Kroger API
- **Endpoint:** `GET https://scrappa.co/api/kroger/search`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | string | Yes | Search text, 1 to 120 characters, for example milk. |
| `page` | integer | No | Only 1 is available (default 1). Any other value answers 422. |

## Example response

```json
{
    "data": {
        "page": 1,
        "count": 24,
        "items": [
            {
                "id": "0001600012254",
                "upc": "0001600012254",
                "url": "https://www.kroger.com/p/general-mills-cinnamon-toast-crunch-cereal/0001600012254",
                "name": "General Mills Cinnamon Toast Crunch\u2122 Cereal",
                "size": "12 oz",
                "unit": "oz",
                "aisle": {
                    "side": "R",
                    "number": "8",
                    "description": "AISLE 8"
                },
                "brand": "General Mills",
                "diets": [
                    "Vegetarian",
                    "Kosher",
                    "Pescatarian"
                ],
                "image": "https://www.kroger.com/product/images/xlarge/front/0001600012254",
                "price": 3.79,
                "images": [
                    "https://www.kroger.com/product/images/xlarge/front/0001600012254",
                    "https://www.kroger.com/product/images/xlarge/back/0001600012254"
                ],
                "origin": "UNITED STATES",
                "rating": {
                    "count": 2476,
                    "average": 4.8
                },
                "non_gmo": false,
                "organic": false,
                "currency": "USD",
                "position": 1,
                "sale_ends": "2026-11-18T04:59:59.999Z",
                "categories": [
                    "Breakfast > Cereal & Granola > Cold Cereal"
                ],
                "sale_price": 3.79,
                "unit_price": 0.3158,
                "fulfillment": [
                    "pickup"
                ],
                "stock_level": "high",
                "regular_price": 3.99,
                "snap_eligible": true,
                "unit_price_text": "$0.32/oz"
            },
            {
                "id": "0001111041660",
                "upc": "0001111041660",
                "url": "https://www.kroger.com/p/kroger-1-lowfat-milk-gallon/0001111041660",
                "name": "Kroger\u00ae 1% Lowfat Milk Gallon",
                "size": "1 gal",
                "unit": "fl oz",
                "aisle": {
                    "side": "R",
                    "number": "100",
                    "description": "DAIRY"
                },
                "brand": "Kroger",
                "diets": [
                    "Kosher",
                    "Pescatarian",
                    "Vegetarian"
                ],
                "image": "https://www.kroger.com/product/images/xlarge/front/0001111041660",
                "price": 3.19,
                "images": [
                    "https://www.kroger.com/product/images/xlarge/front/0001111041660",
                    "https://www.kroger.com/product/images/xlarge/back/0001111041660"
                ],
                "origin": "UNITED STATES",
                "rating": {
                    "count": 22,
                    "average": 3.23
                },
                "non_gmo": false,
                "organic": false,
                "currency": "USD",
                "position": 2,
                "categories": [
                    "Dairy & Eggs > Milk & Dairy Free Milk > 1%, 2%, & Skim Milk"
                ],
                "unit_price": 0.0249,
                "fulfillment": [
                    "pickup"
                ],
                "stock_level": "high",
                "regular_price": 3.19,
                "snap_eligible": true,
                "unit_price_text": "$0.02/fl oz"
            }
        ],
        "query": "cereal",
        "has_next_page": false
    },
    "meta": {
        "credits": 1,
        "billable": true,
        "endpoint_family": "search"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter or a value is invalid, for example page above 1. This response is not billable. |
| 503 | Upstream Unavailable | Kroger could not be reached after several tries. This response is not billable. Retry shortly. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
