IKEA APIikea.com ↗
Search IKEA's catalog, read reviews, check store availability, and browse deals via 10 structured API endpoints returning prices, dimensions, and stock data.
What is the IKEA API?
The IKEA API covers 10 endpoints that expose IKEA's full product catalog, customer reviews, store availability, and curated lists like deals, new arrivals, and best sellers. With search_products you can query by keyword and get back product IDs, prices, ratings, and image URLs. Other endpoints surface dimensional measurements, material groups, category trees, and per-store stock quantities — all as structured JSON.
curl -X GET 'https://api.parse.bot/scraper/50c1c445-5107-4a51-9229-c9691848bcc2/search_products?limit=5&query=desk&offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ikea-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: IKEA Product API — search products, browse categories, check availability."""
from parse_apis.IKEA_Product_API import Ikea, ProductNotFound
client = Ikea()
# Search for desks, capped at 5 total items
for product in client.products.search(query="desk", limit=5):
print(product.name, product.price, product.currency)
# Drill into one product's measurements
product = client.products.search(query="sofa", limit=1).first()
if product:
for m in product.measurements.list(limit=5):
print(m.name, m.measure)
# Check store availability for that product
if product:
for avail in product.availability.list(zip_code="84097", limit=3):
print(avail.available_for_cash_carry, avail.class_unit_key)
# Browse a category by constructing it directly
cat = client.category(id="st001")
for p in cat.products(limit=3):
print(p.name, p.type_name, p.price)
# Typed error handling
try:
bad_product = client.product(id="99999999")
for r in bad_product.reviews.list(limit=1):
print(r.title)
except ProductNotFound as exc:
print(f"Product not found: {exc}")
# Browse current deals
for deal in client.deals.list(limit=3):
print(deal.name, deal.price, deal.previous_price)
print("exercised: products.search / measurements.list / availability.list / category.products / reviews.list / deals.list")
Full-text search over IKEA's US product catalog. Returns paginated product listings matching the query keyword. Each result includes name, type, price, currency, rating, review count, image URL, and product page URL. Pagination via offset; total may report 0 when server omits the count.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results per page. |
| queryrequired | string | Search keyword (e.g. 'sofa', 'KALLAX', 'desk'). |
| offset | integer | Offset for pagination. |
{
"type": "object",
"fields": {
"total": "integer total count of matching products (may be 0 when server omits count)",
"products": "array of product objects with id, name, typeName, price, currency, rating, reviewCount, url, imageUrl"
},
"sample": {
"data": {
"total": 0,
"products": [
{
"id": "40595942",
"url": "https://www.ikea.com/us/en/p/glostad-sofa-knisa-dark-gray-40595942/",
"name": "GLOSTAD",
"price": 199,
"rating": 3.9,
"currency": "USD",
"imageUrl": "https://www.ikea.com/us/en/images/products/glostad-sofa-knisa-dark-gray__1234948_pe917261_s5.jpg",
"typeName": "Sofa",
"reviewCount": 64
}
]
},
"status": "success"
}
}About the IKEA API
Product Search and Detail
search_products accepts a query string (product name, series name like KALLAX, or category keyword) plus optional limit and offset for pagination, and returns a products array with fields including id, name, typeName, price, currency, rating, reviewCount, url, and imageUrl, alongside a total count. For deeper data on any item, get_product_details accepts either a product_url or product_id and returns a richer set: highlights, materials, packaging, warranty, an images array with multiple angles, and the same pricing and rating fields.
Dimensions, Reviews, and Categories
get_product_measurements returns an array of dimension entries — each with a name (e.g. Width, Height, Depth), a measure string with units, and a type code — useful for building furniture finders or compatibility checks. get_product_reviews returns individual review objects with id, rating, title, text, author, and date, plus a totalResults count and a ratingDistribution object. Category navigation is available through get_all_categories, which returns the full hierarchical taxonomy with recursive subs arrays, and get_category_listing, which accepts a category_id and pagination params to retrieve products within that category.
Availability and Curated Lists
get_store_availability takes a required product_id and an optional zip_code and returns an availabilities array with per-store stock quantity and buying options including cash-and-carry and click-and-collect status. Three zero-parameter endpoints — get_deals, get_new_products, and get_best_sellers — return flat product arrays. get_deals includes a previousPrice field for computing discount magnitude; get_new_products and get_best_sellers return the standard listing shape with rating and reviewCount (nullable for items with no reviews yet).
The IKEA API is a managed, monitored endpoint for ikea.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ikea.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ikea.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a furniture dimension checker that pulls
get_product_measurementsto verify whether a product fits a room's floor plan. - Aggregate IKEA deal alerts by polling
get_dealsand comparingpriceagainstpreviousPriceto surface the largest discounts. - Create a stock tracker that monitors
get_store_availabilityfor a specificproduct_idacross locations until in-store quantity exceeds a threshold. - Power a product comparison tool using
get_product_detailsto display materials, warranty text, and packaging dimensions side by side. - Index IKEA's category tree with
get_all_categoriesto build a navigation layer for a room-planning or interior-design application. - Surface trending and newly launched products by combining
get_best_sellersandget_new_productsinto a single catalog feed. - Analyze customer sentiment by collecting
reviews,rating, andratingDistributionfromget_product_reviewsacross a product line.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does IKEA have an official public developer API?+
What does get_store_availability return and can I filter by region?+
get_store_availability returns an availabilities array with stock quantity and buying options (cash-and-carry, click-and-collect) for each store associated with the given product_id. You can pass a zip_code parameter to narrow results to stores near a specific location.Does get_product_reviews return all reviews or only a subset?+
id, rating, title, text, author, and date, along with a totalResults count and ratingDistribution. It does not guarantee returning every review ever submitted — totalResults may exceed the number of review objects in the response. You can fork this API on Parse and revise it to add pagination parameters if full review retrieval is needed.