---
title: "Browse a Kroger category"
method: GET
path: "/kroger/category"
tags: ["Kroger"]
---

# Browse a Kroger category

`GET /kroger/category`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/kroger/category`
- Auth: API key in header `x-api-key`

Browses a Kroger product category and returns product cards plus facet groups, in the same shape as kroger-search. slug and category_id together identify the category (e.g. "pet" and "27" for kroger.com/pl/pet/27) -- call kroger-categories to discover every valid slug/category_id pair. It uses category_id as a taxonomy filter, with real pagination, and the source field reports which path answered. Facet filters and sort apply to the primary path only: when any of them is set, a failure of that path returns an error rather than silently falling back to unfiltered results.

## Query parameters

- `slug` string, required
- `category_id` string, required
- `page` integer
- `sort` 'relevance' | 'name_asc' | 'popularity_desc'
- `brands` string
- `nutrition` string
- `flavor` string
- `scent` string
- `savings` string
- `more_options` string
- `price_min` number
- `price_max` number

## Headers

- `x-api-key` string, required

## Response `200`

OK

- KrogerCategoryResponseDoc
  - `code` integer
  - `data` KrogerCategoryResponse
    - `category_id` string
    - `facets` KrogerSearchFacetGroup[]
      - `group` string
      - `values` KrogerSearchFacetValue[]
        - `count` integer
        - `name` string
        - `slug` string
    - `has_more` boolean: HasMore, Source and Facets carry the same meaning as on SearchResponse -- see that type and Search's doc comment.
    - `page` integer
    - `products` KrogerSearchResultProduct[]
      - `brand` string: Brand and StockLevel are populated by the JSON-API path only (the HTML result cards carry neither); both are omitted when the HTML fallback served the response. See Search's doc comment.
      - `currency` string
      - `image_url` string
      - `low_stock` boolean
      - `original_price` number
      - `price` number
      - `size` string
      - `snap_ebt_eligible` boolean
      - `stock_level` string
      - `title` string
      - `unit_price` string
      - `upc` string
      - `url` string
    - `slug` string
    - `source` string
    - `total_count` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/0497899e2016?raw)
