IKEA Category Products API
List the products in an IKEA category, such as bookcases, with price, rating and link, page by page.
- 1 credit per call
- Failed calls are free
- Updated
- ikea.category.products.list
{ "locale": "fr/fr", "next_offset": 24, "offset": 0, "total": 116, "category": { "name": "Bibliothèques", "id": "10382", "url": "https://www.ikea.com/fr/fr/cat/bibliotheques-10382/" }, "items": [ { "name": "BILLY", "price": 59.99, "rating_value": 4.2, "currency": "EUR", "description": "blanc 80x28x202 cm", "id": "20522046", "online_sellable": true, "rating_count": 57, "type_name": "Bibliothèque", "url": "https://www.ikea.com/fr/fr/p/billy-bibliotheque-blanc-20522046/", "categories": [ { "name": "Rangements", "key": "st001" }, { "name": "Bibliothèques et étagères", "key": "st002" } ], "colors": [ "blanc" ] }, { "name": "BILLY", "price": 49.99, "rating_value": 4.6, "currency": "EUR", "description": "blanc 40x28x202 cm", "id": "50522040", "online_sellable": true, "rating_count": 45, "type_name": "Bibliothèque", "url": "https://www.ikea.com/fr/fr/p/billy-bibliotheque-blanc-50522040/", "categories": [ { "name": "Rangements", "key": "st001" }, { "name": "Bibliothèques et étagères", "key": "st002" } ], "colors": [ "blanc" ] } ]}
| # | Name | Type | Size and colour | Price | Rating | Reviews | Article | Currency | Online sellable | Url |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | BILLY | Bibliothèque | blanc 80x28x202 cm | 59.99 | 4.2 | 57 | 20522046 | EUR | true | https://www.ikea.com/fr/fr/p/billy-bibliotheque-blanc-20522046/ |
| 2 | BILLY | Bibliothèque | blanc 40x28x202 cm | 49.99 | 4.6 | 45 | 50522040 | EUR | true | https://www.ikea.com/fr/fr/p/billy-bibliotheque-blanc-50522040/ |
| 3 | BILLY | Bibliothèque | blanc 80x28x106 cm | 49.99 | 4.5 | 19 | 90522043 | EUR | true | https://www.ikea.com/fr/fr/p/billy-bibliotheque-blanc-90522043/ |
| 4 | GERSBY | Bibliothèque | blanc 60x180 cm | 49.99 | 4.6 | 456 | 70261131 | EUR | true | https://www.ikea.com/fr/fr/p/gersby-bibliotheque-blanc-70261131/ |
| 5 | BAGGEBO | Bibliothèque | blanc 50x25x160 cm | 27.99 | 4.7 | 128 | 20436713 | EUR | true | https://www.ikea.com/fr/fr/p/baggebo-bibliotheque-blanc-2043671… |
| 6 | GNEDBY | Bibliothèque | blanc 202 cm | 39.99 | 4.8 | 329 | 40277143 | EUR | true | https://www.ikea.com/fr/fr/p/gnedby-bibliotheque-blanc-40277143/ |
| 7 | BILLY | Combi bibliothèque | brun motif noyer 160x28x202 cm | 139.98 | 4.5 | 22 | 99581815 | EUR | true | https://www.ikea.com/fr/fr/p/billy-combi-bibliotheque-brun-moti… |
| 8 | HEMNES | Bibliothèque | teinté blanc/brun clair 90x197 cm | 209 | 4.5 | 147 | 60413502 | EUR | true | https://www.ikea.com/fr/fr/p/hemnes-bibliotheque-teinte-blanc-b… |
| 9 | BRIMNES | Bibliothèque | blanc 60x190 cm | 119 | 4.7 | 180 | 90301225 | EUR | true | https://www.ikea.com/fr/fr/p/brimnes-bibliotheque-blanc-9030122… |
| 10 | BILLY | Bibliothèque | blanc 40x28x106 cm | 39.99 | 4.8 | 12 | 10522037 | EUR | true | https://www.ikea.com/fr/fr/p/billy-bibliotheque-blanc-10522037/ |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| category_id | string | yes | The category's number from its IKEA link, such as 10382 for bookcases in France. | 10382 |
| limit | integer | no | How many products to read per page. The default is 24. | |
| locale | string | no | The IKEA country site: fr/fr, gb/en, ie/en or de/de. | fr/fr · gb/en · ie/en · de/de |
| max_records | integer | no | The most products to return from this call. | |
| offset | integer | no | Where to start. Pass next_offset from the last response to get the next page. |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| items[].name | string | The product's name, such as BILLY. | BILLY |
| items[].type_name | string | What kind of product it is. | Bibliothèque |
| items[].description | string | Colour and size as IKEA describes them. | blanc 80x28x202 cm |
| items[].price | number | The price in the store's currency. | 59.99 |
| items[].rating_value | number | The average customer rating. | 4.2 |
| items[].rating_count | integer | How many ratings it has. | 57 |
| items[].id | string | IKEA's article number; pass it to the product and stock endpoints. | 20522046 |
| items[].categories[].name | string | The category's name. | Rangements |
| items[].categories | array | The categories the product is in. | 3 records |
| items[].categories[].key | string | IKEA's ID for the category. | st001 |
| items[].colors | array | The product's colours. | blanc |
| items[].currency | string | The currency of the price. | EUR |
| items[].online_sellable | boolean | Whether it can be bought online. | true |
| items[].url | string | The product page on IKEA. | https://www.ikea.com/fr/fr/p/billy-bibliotheque-blanc-20522046/ |
| category | object | The category listed. | 3 fields |
| category.id | string | IKEA's ID for the category. | 10382 |
| category.name | string | The category's name. | Bibliothèques |
| category.url | string | The category page on IKEA. | https://www.ikea.com/fr/fr/cat/bibliotheques-10382/ |
| items | array | The products found. | 24 records |
| locale | string | The IKEA country and language read. | fr/fr |
| next_offset | integer | Send it as offset to get the next products. | 24 |
| offset | integer | Where this page starts in the list. | 0 |
| total | integer | How many products match in total. | 116 |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "ikea.category.products.list", "input": { "category_id": "10382" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "ikea.category.products.list", "input": { "category_id": "10382" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "ikea.category.products.list", "input": { "category_id": "10382" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
Use Upscrape to list the bookcases in IKEA France category 10382 with price and rating, cheapest first.
More from the IKEA API
The same data from other platforms
IKEA Category Products API FAQ
The short answers. The docs have the long ones.
How much does the IKEA Category Products API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send category_id. The input fields below list every option with its type and limits.
Do I need an IKEA login?
No. It reads public IKEA data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds ikea.category.products.list, checks its price and runs it with the same credits as the REST API.
Your first IKEA call is free.
Up to 100 free credits to start, no card needed.