---
title: "Browse an IKEA category"
method: GET
path: "/ikea/category"
tags: ["IKEA"]
---

# Browse an IKEA category

`GET /ikea/category`

## Request

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

Returns one page of an IKEA category's product listing, with real offset/size pagination and sort. category is IKEA's own category key (e.g. 20649), taken from a category URL's trailing -{key}/ segment, a product's own category_path field, or GET /ikea/categories, which discovers every valid category value.

## Query parameters

- `category` string, required
- `country` string
- `language` string
- `offset` integer
- `size` integer
- `sort` 'relevance' | 'price-low' | 'price-high' | 'newest' | 'rating' | 'name' | 'popular' | 'width' | 'height' | 'depth' | 'length'

## Headers

- `x-api-key` string, required

## Response `200`

OK

- IkeaCategoryResponseDoc
  - `code` integer
  - `data` IkeaCategoryResponse
    - `category_key` string
    - `category_name` string
    - `category_url` string
    - `count` integer: Count is the number of products returned in this page; Total is IKEA's own total match count for the category. A request whose Offset is beyond Total returns Count 0 and Total 0 (IKEA's own response omits total-count metadata once the offset runs past the end of the result set -- confirmed live 2026-08-20).
    - `country` string
    - `fetched_at` string
    - `language` string
    - `offset` integer
    - `products` IkeaProductSummary[]
      - `colors` IkeaColor[]
        - `hex` string
        - `id` string
        - `name` string
      - `filter_class` string: FilterClass is IKEA's own product-type slug, e.g. "desks" -- usable as a coarse category signal, though it is not currently accepted back as a category-browse filter by this endpoint (see this package's doc comment).
      - `image_url` string
      - `item_no` string
      - `measure_text` string
      - `name` string
      - `price` IkeaPrice
        - `currency_code` string
        - `current` number
        - `discount_amount` number
        - `discount_percentage` number
        - `formatted` string
        - `previous` number
        - `previous_formatted` string
        - `tag` string: Tag is IKEA's own price-badge code, e.g. "FAMILY_PRICE" for an IKEA Family member price. TagText is its human-readable label, e.g. "IKEA Family price".
        - `tag_text` string
        - `valid_from` string
        - `valid_to` string
      - `product_url` string
      - `rating` IkeaRating
        - `count` integer
        - `value` number
      - `type_name` string
      - `valid_design` string: ValidDesign is IKEA's own color/finish descriptor for this exact item, e.g. "white" or "black-brown" -- the design this specific item number represents, as opposed to Colors below (every color swatch shown for the product family).
      - `variant_count` integer: VariantCount is the total number of other purchasable size/color/design options this product has, which may exceed len(Variants) -- the search endpoint's own gprDescription block does not always enumerate every variant.
      - `variants` IkeaVariant[]
        - `image_url` string
        - `item_no` string
        - `name` string
        - `price` IkeaPrice
          - `currency_code` string
          - `current` number
          - `discount_amount` number
          - `discount_percentage` number
          - `formatted` string
          - `previous` number
          - `previous_formatted` string
          - `tag` string: Tag is IKEA's own price-badge code, e.g. "FAMILY_PRICE" for an IKEA Family member price. TagText is its human-readable label, e.g. "IKEA Family price".
          - `tag_text` string
          - `valid_from` string
          - `valid_to` string
        - `product_url` string
        - `rating` IkeaRating
          - `count` integer
          - `value` number
        - `type_name` string
        - `valid_design` string
    - `sort` string
    - `source_url` string
    - `total` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `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)
