Kohl's API endpoint
Returns a Kohl's category or curated campaign page's product grid (page 1 only), with products (title, image, colors, pricing, rating, availability) and facets for discovering further category values. category is Kohl's own catalog taxonomy string, e.g. "Room:Dorm" or "Department:Kitchen & Dining" -- combine multiple dimensions with a literal "+", percent-encoded as "%2B" so it survives as "+" rather than being decoded to a space (e.g. "Room%3ADorm%2BDepartment%3ABedding"). Every facets[].options[].category value in a response is a ready-to-use category string for a follow-up call, so a caller can discover the full taxonomy by starting from a known category (e.g. "Room:Dorm") and following facets. A category value Kohl's does not recognize returns a 404 rather than an unfiltered listing; a recognized dimension with no matching products returns a genuine zero-result response instead.
/kohls/categoryNotable response behavior:
product_count is the category's total result count across all pages; total_pages and limit describe the upstream page size, but this endpoint does not fetch page 2 or beyond.facets[].options[].category value in a response is a ready-to-use category string for a follow-up call -- this is how a caller discovers the full taxonomy, starting from a known category (e.g. Room:Dorm) and following its facets (e.g. Department, Brand, Price).category value Kohl's does not recognize at all returns a 404 rather than an unfiltered listing. A recognized dimension with a value that matches nothing (e.g. a real department with a typo'd name) returns a genuine zero-result response (count: 0, empty products) instead of an error.sale_price is present only when the product is genuinely on sale; on_sale is false and sale_price is omitted otherwise.regular_price/sale_price are min/max ranges rather than single prices, because a product can span multiple sizes/colors at different price points.| Field | Filled in, of 120 checked | Values in the sample |
|---|---|---|
| web_id | 120 | |
| title | 120 | “The Big One® Solid Bath Towel, Bath Sheet, Hand Towel or Wa…” and 119 other values |
| image_url | 120 | media.kohlsimg.com |
| colors | 120 | median 1 entry |
| currency_code | 120 | |
| regular_price | 120 | |
| on_sale | 120 | true in 95 of 120 |
| rating | 111 | 3.1 to 5, median 4.4 |
| review_count | 111 | 2 to 27,859, median 321 |
| available_for_ship | 120 | true in 120 of 120 |
| available_for_pickup | 120 | true in 0 of 120 |
| url | 120 | kohls.com |
| sale_price | 95 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| category | string | Yes | Kohl's catalog taxonomy string, e.g. \ | Room:Dorm | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kohls/category?category=Room%3ADorm" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"category": "Room:Dorm",
"title": "Essential Dorm Items for College-Bound Students | Kohl's",
"product_count": 1317,
"count": 1,
"limit": 120,
"total_pages": 11,
"products": [
{
"web_id": "4569328",
"title": "The Big One® Solid Bath Towel, Bath Sheet, Hand Towel or Washcloth",
"image_url": "https://media.kohlsimg.com/is/image/kohls/4569328_Medium_Gray?wid=180&hei=180&op_sharpen=1",
"colors": [
"Medium Gray"
],
"currency_code": "USD",
"regular_price": {
"min_price": 2.99,
"max_price": 9.99
},
"sale_price": {
"min_price": 2.09,
"max_price": 8.99
},
"on_sale": true,
"rating": 3.9,
"review_count": 27103,
"available_for_ship": true,
"available_for_pickup": false,
"url": "https://www.kohls.com/product/prd-4569328/the-big-one-solid-bath-towel-bath-sheet-hand-towel-or-washcloth.jsp"
}
],
"facets": [
{
"name": "Department",
"label": "Department",
"options": [
{
"category": "Room:Dorm+Department:Bedding",
"name": "Bedding",
"product_count": 479,
"active": false
}
]
}
],
"source_url": "https://www.kohls.com/shopnext-web-findability/api/web-shop/pmp-catalog?CN=Room:Dorm",
"fetched_at": "2026-08-12T04:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/kohls.categoryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kohls.CategoryResponse | No | ||||
| data.category | string | No | Room:Dorm | |||
| data.count | integer | No | 120 | |||
| data.facets | array | No | ||||
| data.facets[].label | string | No | Department | |||
| data.facets[].name | string | No | Department | |||
| data.facets[].options | array | No | ||||
| data.facets[].options[].active | boolean | No | ||||
| data.facets[].options[].category | string | No | Room:Dorm+Department:Bedding | |||
| data.facets[].options[].name | string | No | Bedding | |||
| data.facets[].options[].product_count | integer | No | 479 | |||
| data.fetched_at | string | No | ||||
| data.limit | integer | No | 120 | |||
| data.product_count | integer | No | 1317 | |||
| data.products | array | No | ||||
| data.products[].available_for_pickup | boolean | No | false | |||
| data.products[].available_for_ship | boolean | No | true | |||
| data.products[].colors | array | No | ||||
| data.products[].currency_code | string | No | USD | |||
| data.products[].image_url | string | No | ||||
| data.products[].on_sale | boolean | No | true | |||
| data.products[].rating | number | No | 3.9 | |||
| data.products[].regular_price | kohls.CategoryPriceRange | No | ||||
| data.products[].regular_price.max_price | number | No | 9.99 | |||
| data.products[].regular_price.min_price | number | No | 2.99 | |||
| data.products[].review_count | integer | No | 27103 | |||
| data.products[].sale_price | kohls.CategoryPriceRange | No | ||||
| data.products[].sale_price.max_price | number | No | 9.99 | |||
| data.products[].sale_price.min_price | number | No | 2.99 | |||
| data.products[].title | string | No | The Big One® Solid Bath Towel, Bath Sheet, Hand Towel or Washcloth | |||
| data.products[].url | string | No | ||||
| data.products[].web_id | string | No | 4569328 | |||
| data.source_url | string | No | ||||
| data.title | string | No | Essential Dorm Items for College-Bound Students | Kohl's | |||
| data.total_pages | integer | No | 11 | |||
| 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/kohls/category?category=Room%3ADorm" \
-H "x-api-key: $CRAWLORA_API_KEY"