# IKEA Visual Search Scraper (`piotrv1001/ikea-visual-search-scraper`) Actor

The IKEA Visual Search Scraper finds IKEA products that match a room or furniture photo, one per detected object, in any of 51 IKEA countries — with local price, currency, rating, reviews, images, variants and product links. Ideal for interior design, shoppable rooms and dupe finding.

- **URL**: https://apify.com/piotrv1001/ikea-visual-search-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** E-commerce, AI, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 1,000 image searches

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🚀 IKEA Visual Search Scraper

Find IKEA products from a photo. The **IKEA Visual Search Scraper** takes room or furniture photos and returns the IKEA products that match them, the same "search with an image" that ikea.com offers. IKEA finds the objects in each photo (sofa, rug, shelf, lamp, vase...) and matches an IKEA product to each one. You get the product name, type, local price and currency, rating and review count, photos, color and size variants, category and a direct product link, for any of 51 IKEA countries. Built for interior designers, home and decor apps, shoppable-room content, dupe finders and anyone who wants to turn a room photo into an IKEA shopping list.

### ✨ Features

- 📷 **Photo in, products out**: Any direct image URL (JPG, PNG, WebP or GIF, up to 10 MB) or data: URL. Large photos are resized for you. One search per image.
- 🛋️ **Every object in the room**: IKEA detects up to 10 objects per photo and matches one product to each, so one living-room photo returns the sofa, the rug, the shelf and the decor.
- 🌍 **51 IKEA countries**: Pick the store. Only products sold there are returned, with local names, prices, currency and links.
- 🏷️ **Rich rows**: Product number, name, type, design and size, price, previous price and discount, currency, rating, review count, main and room photos, colors, category path, variants, and where in the photo the object was found.
- 🧹 **No duplicates**: When two objects match the same product, you get it once.
- 💸 **Pay per image**: One price per image searched. Images that cannot be loaded, fail, or match nothing are free.

### 🛠️ How It Works

1. **Paste image URLs**: Room photos, product photos from another shop, or pictures from social media.
2. **Pick the IKEA country**: The store whose products, prices and currency you want.
3. **Run the scraper**: You get one row per matched IKEA product, numbered by match order and grouped by the photo that found it.

### 💰 Pricing

| Event        |    Price | What you get                                          |
| ------------ | -------: | ----------------------------------------------------- |
| Actor start  | $0.00005 | Once per run                                          |
| Image search |   $0.015 | One image searched, every matched product (up to ~10) |

100 photos cost $1.50, about $0.0015 per matched product. Images that cannot be loaded, fail, or match no product sold in the chosen country are not charged. The run stops at your maximum charge per run.

### 📥 Input

| Field                | Type    | Description                                                                      |
| -------------------- | ------- | -------------------------------------------------------------------------------- |
| `imageUrls`          | array   | Image URLs (or data: URLs) to search with.                                       |
| `country`            | string  | IKEA country code: `us` (default), `gb`, `de`, `fr`, `se`, `pl`, `jp`, `au`, ... |
| `maxResultsPerImage` | integer | Products per image, default and maximum `10` (IKEA matches up to 10 per photo).  |
| `proxyConfiguration` | object  | Keep the default.                                                                |

Example:

```json
{
    "imageUrls": ["https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800"],
    "country": "de"
}
```

Countries: United States, Canada, Mexico, Chile, Colombia, United Kingdom, Ireland, Germany, Austria, Switzerland, France, Belgium, Netherlands, Italy, Spain, Portugal, Sweden, Norway, Denmark, Finland, Poland, Czechia, Slovakia, Hungary, Romania, Croatia, Slovenia, Serbia, Estonia, Latvia, Lithuania, Israel, United Arab Emirates, Saudi Arabia, Qatar, Kuwait, Bahrain, Oman, Jordan, Egypt, Morocco, India, Japan, South Korea, China, Singapore, Malaysia, Thailand, Philippines, Australia and New Zealand.

### 📊 Sample Output Data

One row per matched product. Example (two matches for a living-room photo, IKEA US):

```json
[
    {
        "searchImage": "https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800",
        "position": 2,
        "productNumber": "80519531",
        "globalProductNumber": "00519525",
        "itemType": "ART",
        "name": "KIVIK",
        "typeName": "Sofa",
        "designText": "Grann/Bomstad black",
        "measure": null,
        "url": "https://www.ikea.com/us/en/p/kivik-sofa-grann-bomstad-black-80519531/",
        "price": 1299,
        "previousPrice": null,
        "currency": "USD",
        "priceUnit": null,
        "discountPercentage": null,
        "tag": null,
        "rating": 4.3,
        "reviewCount": 68,
        "imageUrl": "https://www.ikea.com/us/en/images/products/kivik-sofa-grann-bomstad-black__0137863_pe296632_s5.jpg",
        "contextualImageUrl": "https://www.ikea.com/us/en/images/products/kivik-sofa-grann-bomstad-black__0788744_pe763716_s5.jpg",
        "images": [
            "https://www.ikea.com/us/en/images/products/kivik-sofa-grann-bomstad-black__0137863_pe296632_s5.jpg"
        ],
        "colors": ["black"],
        "categoryPath": ["Sofas & armchairs", "Sofas & sectionals", "Sofas"],
        "onlineSellable": true,
        "lastChance": false,
        "variantCount": 0,
        "variants": [],
        "detectedObject": {
            "bbox": { "left": 0.096875, "top": 0.34507, "right": 0.91094, "bottom": 0.85446 },
            "score": 5.29,
            "matchType": "replacement_recommendation",
            "originalArticle": "59031702"
        },
        "country": "us",
        "language": "en",
        "scrapedAt": "2026-10-09T10:38:37.723Z"
    },
    {
        "searchImage": "https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800",
        "position": 3,
        "productNumber": "20426808",
        "globalProductNumber": "20426808",
        "itemType": "ART",
        "name": "STOENSE",
        "typeName": "Rug, low pile",
        "designText": "off-white",
        "measure": "6 ' 7 \"x9 ' 10 \"",
        "url": "https://www.ikea.com/us/en/p/stoense-rug-low-pile-off-white-20426808/",
        "price": 129.99,
        "previousPrice": 159.99,
        "currency": "USD",
        "priceUnit": null,
        "discountPercentage": 18,
        "tag": "DISCONTINUED_PRODUCT",
        "rating": 4.6,
        "reviewCount": 6107,
        "imageUrl": "https://www.ikea.com/us/en/images/products/stoense-rug-low-pile-off-white__0624402_pe691814_s5.jpg",
        "contextualImageUrl": "https://www.ikea.com/us/en/images/products/stoense-rug-low-pile-off-white__1443375_pe987139_s5.jpg",
        "images": [
            "https://www.ikea.com/us/en/images/products/stoense-rug-low-pile-off-white__0624402_pe691814_s5.jpg"
        ],
        "colors": ["beige", "white"],
        "categoryPath": ["Rugs & home textiles", "Rugs", "Medium, large and extra-large rugs"],
        "onlineSellable": true,
        "lastChance": true,
        "variantCount": 15,
        "variants": [
            {
                "productNumber": "10425526",
                "designText": "off-white",
                "measure": "4 ' 4 \"x6 ' 5 \"",
                "price": 99.99,
                "url": "https://www.ikea.com/us/en/p/stoense-rug-low-pile-off-white-10425526/",
                "imageUrl": "https://www.ikea.com/us/en/images/products/stoense-rug-low-pile-off-white__0624373_pe691791_s5.jpg"
            }
        ],
        "detectedObject": {
            "bbox": { "left": 0, "top": 0.71596, "right": 0.99844, "bottom": 0.99296 },
            "score": 6.69,
            "matchType": "replacement_recommendation",
            "originalArticle": "60408039"
        },
        "country": "us",
        "language": "en",
        "scrapedAt": "2026-10-09T10:38:37.723Z"
    }
]
```

- `detectedObject.bbox` is where the object sits in your photo, as fractions of its width and height (0 to 1). A box of `0, 0, 1, 1` is a match for the whole photo.
- `matchType` is `visual_search` (the product IKEA sees in the photo) or `replacement_recommendation` (the photo shows a product IKEA no longer sells in that version, `originalArticle`, and this is the one it recommends instead).
- `variantCount` is the number of other colors and sizes; `variants` lists up to 6 of them with their own price and link.
- Images that fail come back as `{ "searchImage": "...", "status": "image_error" | "failed" | "no_matches", "error": "..." }` rows and are not charged.

### 🔗 Use cases

- **Shop the look**: Turn interior photos from Pinterest, Instagram or design blogs into IKEA product lists with prices.
- **Dupe finding**: Find the IKEA alternative to a designer sofa, lamp or chair from its product photo.
- **Interior design and home apps**: Add "find it at IKEA" to room photos, mood boards or AI room designs.
- **Price comparison across countries**: Run the same photo against several IKEA countries and compare local prices.

### 🔗 Related Actors

- [Amazon Image Search Scraper](https://apify.com/piotrv1001/amazon-image-search-scraper): find Amazon products that look like your photo.
- [AliExpress Image Search Scraper](https://apify.com/piotrv1001/aliexpress-image-search-scraper): the same photo search on AliExpress.
- [Pinterest Visual Search Scraper](https://apify.com/piotrv1001/pinterest-visual-search-scraper): find Pinterest pins that look like your photo.
- [Bing Visual Search Scraper](https://apify.com/piotrv1001/bing-visual-search-scraper) — reverse image search on Bing: best-guess label, similar images and their pages.
- [Yandex Reverse Image Search Scraper](https://apify.com/piotrv1001/yandex-reverse-image-search-scraper) — find where an image appears online, other sizes and similar images.

Turn room photos into IKEA shopping lists. Run the **IKEA Visual Search Scraper** today! 🚀

# Actor input Schema

## `imageUrls` (type: `array`):

Room or furniture photos to search IKEA with: direct image URLs (JPG, PNG, WebP or GIF, up to 10 MB) or data: URLs. IKEA finds the objects in each photo (sofa, rug, lamp, shelf...) and matches an IKEA product to each. Leave empty to try two example photos.

## `country` (type: `string`):

The IKEA store to match against: only products sold there are returned, with local prices, currency, names and links.

## `maxResultsPerImage` (type: `integer`):

IKEA matches one product per detected object and detects up to 10 objects per photo, so a photo returns up to 10 products (fewer when objects match the same product).

## `proxyConfiguration` (type: `object`):

Keep the default.

## Actor input object example

```json
{
  "imageUrls": [
    "https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800",
    "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=800"
  ],
  "country": "us",
  "maxResultsPerImage": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `products` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "imageUrls": [
        "https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800",
        "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=800"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/ikea-visual-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "imageUrls": [
        "https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800",
        "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=800",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/ikea-visual-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "imageUrls": [
    "https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800",
    "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=800"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call piotrv1001/ikea-visual-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,piotrv1001/ikea-visual-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GrzJ0p6VWkgm1fB1P/builds/3f154L43D6qsD1vyD/openapi.json
