IKEA API endpoint
Returns one IKEA item's real-time home-delivery and click-and-collect stock signal for the requested country. item_no is IKEA's own item number.
/ikea/availabilityReturns one IKEA item's real-time home-delivery and click-and-collect stock signal. item_no is required: IKEA's own item number. country defaults to us. An unknown item number returns 404.
home_delivery.message_type is IKEA's own stock-probability code (observed values include HIGH_IN_STOCK, LOW_IN_STOCK, and OUT_OF_STOCK); in_range on both home_delivery and click_collect indicates whether that fulfillment method is offered at all for the requested country.
| Field | In the sample | Value in the sample |
|---|---|---|
| item_no | Has a value | 80,213,074 |
| country | Has a value | “us” |
| available_for_home_delivery | Has a value | true |
| available_for_click_collect | Has a value | true |
| home_delivery.in_range | Has a value | true |
| home_delivery.message_type | Has a value | “HIGH_IN_STOCK” |
| home_delivery.updated_at | Has a value | 2025-10-23 |
| click_collect.in_range | Has a value | true |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| item_no | string | Yes | IKEA item number | 80213074 | |
| country | string | No | Lowercase 2-letter IKEA site country code | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/ikea/availability?item_no=80213074&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"item_no": "80213074",
"country": "us",
"available_for_home_delivery": true,
"available_for_click_collect": true,
"home_delivery": {
"in_range": true,
"message_type": "HIGH_IN_STOCK",
"updated_at": "2026-08-20T07:34:42.063Z"
},
"click_collect": {
"in_range": true
}
}
}Request schema
No body schema
Response schema
#/definitions/ikea.availabilityResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | ikea.AvailabilityResponse | No | ||||
| data.available_for_click_collect | boolean | No | ||||
| data.available_for_home_delivery | boolean | No | ||||
| data.click_collect | ikea.PickupAvailability | No | ||||
| data.click_collect.in_range | boolean | No | ||||
| data.country | string | No | us | |||
| data.fetched_at | string | No | ||||
| data.home_delivery | ikea.DeliveryAvailability | No | ||||
| data.home_delivery.in_range | boolean | No | ||||
| data.home_delivery.message_type | string | No | HIGH_IN_STOCK | MessageType is IKEA's own stock-probability code, e.g. "HIGH_IN_STOCK", "LOW_IN_STOCK", "OUT_OF_STOCK" -- values other than these three were not observed live this pass; surfaced verbatim rather than validated against a closed enum since it is response data from IKEA's own system, not a caller-supplied parameter. | ||
| data.home_delivery.updated_at | string | No | ||||
| data.item_no | string | No | 80213074 | |||
| data.source_url | string | No | ||||
| 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/ikea/availability?item_no=80213074&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"