# insider Asia Scraper - German Asian Grocery Prices (`sian.agency/insider-asia-product-scraper`) Actor

Exportiere den insider-Asia-Katalog: Preise, Grundpreis, EAN-Codes, Marken, Lieferzeit und Verfügbarkeit für 958 asiatische Lebensmittel und Küchenartikel.

- **URL**: https://apify.com/sian.agency/insider-asia-product-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 catalogues

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## insider Asia Scraper — German Asian Grocery Prices, EAN & Stock 🥡

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Tesco](https://img.shields.io/badge/Store-Tesco%20Products-00539F)](https://apify.com/sian.agency/tesco-product-scraper?fpr=sian) [![Bauhaus](https://img.shields.io/badge/Store-Bauhaus%20Products-E30613)](https://apify.com/sian.agency/bauhaus-product-scraper?fpr=sian) [![Google Shopping](https://img.shields.io/badge/Store-Google%20Shopping%20Prices-4285F4)](https://apify.com/sian.agency/google-shopping-price-scraper?fpr=sian)

#### 🎉 All 958 products, with EAN barcodes and a real price per 100 g

##### Built for anyone pricing, sourcing or comparing Asian food in Germany

### 🔎 What is the insider Asia Product Scraper — and when should you use it?

The **insider Asia Product Scraper** turns the public catalogue of insiderasia.de, a German Asian food and cookware shop into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

**Use it when you need:** German Asian-grocery products as rows: price in euros with VAT, the shop's own price per 100 g, litre or kilo, brand, delivery window, whether it ships now or is on order, a short description and the photo. Detail mode adds the EAN-13 barcode, the article number, the full German description, the shelf path, every published image and the size or flavour options.

**Use something else when:** you need a mainstream European grocery or a different retailer. Use [Tesco Product Scraper](https://apify.com/sian.agency/tesco-product-scraper?fpr=sian) for the UK supermarket, for the everyday half of a basket rather than Asian specialities. Use [Bauhaus Product Scraper](https://apify.com/sian.agency/bauhaus-product-scraper?fpr=sian) for German DIY and home retail, with the same price-and-availability row shape. Use [Google Shopping Price Scraper](https://apify.com/sian.agency/google-shopping-price-scraper?fpr=sian) for what every other seller charges for the same article, once you have its EAN. This actor reads one shop. It covers the 958 products insiderasia.de publishes to shoppers, across food, tableware and chopsticks, woks and rice cookers, decor, and tea and drinks. It says what insider Asia charges today; it is not a price comparison, it carries no history unless you schedule it and keep the datasets, and the shop publishes no nutrition table, so there is none to extract.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/insider-asia-product-scraper

**Your agent can pay for its own runs.** This Actor is eligible for [agentic payments](https://docs.apify.com/platform/actors/publishing/monetize), so an agent can discover it, run it and settle the bill over [x402](https://www.x402.org/) (USDC on Base) or [Skyfire](https://www.skyfire.xyz/) — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```text
I want prices, EAN barcodes and availability for German Asian-grocery products using the Apify Actor `sian.agency/insider-asia-product-scraper`.

Use it when I need: German Asian-grocery products as rows: price in euros with VAT, the shop's own price per 100 g, litre or kilo, brand, delivery window, whether it ships now or is on order, a short description and the photo. Detail mode adds the EAN-13 barcode, the article number, the full German description, the shelf path, every published image and the size or flavour options.

Don't use it when: you need a mainstream European grocery or a different retailer — use tesco-product-scraper or bauhaus-product-scraper or google-shopping-price-scraper instead.

How to call it: leave `operation` on `catalog` and give `searchTerms` German words — `ramen` returns 28 products, `sojasauce` 27, `reis` 58, `sushi` 55, `nudeln` 41, `tee` 30. To browse instead of search, clear the terms and pick a `department`: Lebensmittel holds 412 products, Gedeckter Tisch 291, Rund ums Kochen 109, Ambiente & Wellness 92, Asiatische Getränke 58, and the cuisine shelves Japan, China, Korea, Geschenkideen and Rund ums Grillen cut the same catalogue a second way. Leave it on `Any` with no search terms to export all 958 products. `categoryUrls` takes any shelf address from the shop, including the 61 sub-shelves the dropdown does not list. `sortBy` applies the shop's own ordering before the maximum stops the run, so `priceAsc` gives you the cheapest products first. `inStockOnly` keeps only what ships in 1-3 days. To go deeper on products you already have, set `operation` to `productDetail` and pass `productUrls` — those rows carry the EAN barcode and the full description, which no listing page publishes.

Start with this input:
{
  "operation": "catalog",
  "searchTerms": [
    "ramen",
    "sojasauce"
  ],
  "department": "Any",
  "sortBy": "priceAsc",
  "inStockOnly": false,
  "maxItems": 100
}

Ask me which German search words or which shelf to cover, and whether the EAN barcode and full description are worth the deeper per-product charge, then run the Actor and summarise the results as a table.
```

**Things you can ask your agent for:**

- *Export every ramen and instant-noodle product at insider Asia with its price per 100 g, sorted cheapest first.*
- *Give me the whole Lebensmittel shelf with EAN barcodes so I can match it against my wholesaler list.*
- *Track which Asian sauces went out of stock this week and which came back.*

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at [apify.com/sian.agency/insider-asia-product-scraper.md](https://apify.com/sian.agency/insider-asia-product-scraper.md).

### 📋 Overview

**insider Asia has been selling Asian food, spices, cookware and lifestyle goods into Germany since 2004.** This actor turns its whole shop into rows you can sort, filter and join.

**What you get:**

- ✅ **The complete catalogue**: 958 products, checked against the shop's own sitemap. Nothing missing, nothing counted twice.
- 🏷️ **EAN barcodes on three products in four**: the join key that lets a row meet a wholesaler list or a marketplace feed without fuzzy name matching.
- ⚖️ **A real price per unit**: nearly half the rows carry the shop's own €/100 g, €/litre or €/kg, so a 50 g sachet compares to a 1 kg bag directly.
- 📦 **Availability with three states, not two**: ships in 1-3 days, back in about three weeks, or unavailable. The middle one is 8% of the shop.
- 💶 **Numbers that add up**: German prices are written 19,00 EUR. Rows carry 19.0, ready for a spreadsheet.
- 🌏 **A specialist assortment**: gochujang, dashi kombu, tamarind paste, a carbon-steel wok. Products a mainstream German supermarket does not stock.

### ✨ Features

- 🛒 **Search or browse**: German keywords, or a whole shelf, or the entire shop in one run.
- 🗂️ **Ten shelves, counted for real**: every product count in the picker came from walking that shelf, not from a number the shop advertises.
- ↕️ **Sorting that actually sorts**: six orderings, each confirmed to change what the shop returns. The one it ignores is not offered.
- 🔬 **A deeper row when you want it**: EAN, article number, full description, shelf path, image gallery, size and flavour options.
- ✅ **In-stock filtering**: keep only what ships within three days, or take everything and decide later.
- 🔢 **A hard maximum**: a first run costs exactly what you set, no surprises.
- 💰 **Billed per product returned**: an empty search, an empty shelf and an unreadable link all cost nothing.
- 📄 **A run report every time**: what came back, what did not, what it cost, and copy buttons for the links and barcodes.

### 🎬 Quick Start

Pick a mode, give it something to look for, set a maximum. Catalogue mode is the one to start with, because it returns many products per request and never needs a link. Everything below runs without any setup beyond an Apify token.

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~insider-asia-product-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "catalog", "searchTerms": ["ramen"], "maxItems": 25}'
```

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose search or browse

Type German words into **Search terms**: `ramen`, `sojasauce`, `reis`, `wok`. Or clear that field and pick a **Shelf** to walk one instead.

#### Step 2: Set your maximum

Leave it at 25 for a first look. Raise it to 1000 when you want a whole shelf or the entire shop.

#### Step 3: Run it and open the dataset

Export as JSON, CSV or Excel, or read the run report for a table with copy buttons.

**That's it! In under a minute, you'll have:**

- One row per product, with price, price per unit, brand and stock state
- A dataset you can schedule weekly to watch prices move
- A list of product links ready for detail mode

### 📥 Input Configuration

| Field | Type | Required | Description |
|---|---|---|---|
| `operation` | string | No | `catalog` (search or browse) or `productDetail` (deeper rows) |
| `searchTerms` | array | No | German search words, one per line |
| `department` | string | No | Which shelf to walk. `Any` walks the whole shop |
| `categoryUrls` | array | No | Shelf addresses from the shop, including sub-shelves |
| `sortBy` | string | No | `shopDefault`, `priceAsc`, `priceDesc`, `nameAsc`, `nameDesc`, `dateDesc`, `dateAsc` |
| `inStockOnly` | boolean | No | Keep only products shipping in 1-3 days |
| `productUrls` | array | No | Product page links for `productDetail` |
| `maxItems` | integer | No | Stop after this many rows (default 25) |

**Example: search**

```json
{
  "operation": "catalog",
  "searchTerms": ["ramen", "sojasauce"],
  "sortBy": "priceAsc",
  "maxItems": 100
}
```

**Example: the whole shop**

```json
{
  "operation": "catalog",
  "searchTerms": [],
  "department": "Any",
  "maxItems": 1000
}
```

**Example: deeper rows**

```json
{
  "operation": "productDetail",
  "productUrls": [
    "https://www.insiderasia.de/Tamarinden-Paste.html",
    "https://www.insiderasia.de/yaki-nori.html"
  ]
}
```

### 📤 Output

Results are saved to the Apify dataset with **26 fields**, including:

| Field | Type | Description |
|---|---|---|
| `productName` | string | The product as the shop names it |
| `productUrl` | string | Its page on the shop |
| `ean` | string | EAN-13 barcode (detail mode) |
| `sku` | string | The shop's own article number (detail mode) |
| `brand` | string | Manufacturer or house brand |
| `price` | number | Price in EUR, VAT included |
| `priceIsFrom` | boolean | True when the price depends on a size chosen on the page |
| `unitPrice` | number | The shop's own price per unit |
| `unitPriceBasis` | string | What that unit is: `100g`, `Kg`, `liter`, `100ml` |
| `availability` | string | `InStock`, `BackOrder` or `OutOfStock` |
| `deliveryTime` | string | The shop's own wording: `1-3 Tage`, `3 Wochen` |
| `vatRate` | number | 7 for food, 19 for everything else |
| `categoryPath` | string | The shelf path this product sits on (detail mode) |
| `descriptionText` | string | The full German description (detail mode) |
| `variantOptions` | array | Size or flavour choices, where a product has them |

**Example row:**

```json
{
  "productName": "Sushi-Nori, allgroo",
  "productUrl": "https://www.insiderasia.de/yaki-nori.html",
  "productId": 1663,
  "sku": "01020206",
  "ean": "8805957020635",
  "brand": "ALLGROO",
  "price": 2.99,
  "priceIsFrom": false,
  "currency": "EUR",
  "unitPrice": 11.96,
  "unitPriceBasis": "100g",
  "vatRate": 7,
  "availability": "InStock",
  "inStock": true,
  "deliveryTime": "1-3 Tage",
  "categoryPath": "Lebensmittel > Gemüse, Pilze & Algen",
  "imageUrl": "https://www.insiderasia.de/images/product_images/original_images/sushi-nori.jpg",
  "operation": "productDetail",
  "scrapedAt": "2026-09-10T10:00:00.000Z"
}
```

### 💼 Use Cases & Examples

#### 1. Asian grocery price monitoring in Germany

**A category buyer needs to know what a specialist retailer charges, at the pack size that matters.**

**Input:** search terms like `sojasauce`, `curry`, `reis`, or the Lebensmittel shelf
**Output:** one row per product with price, price per 100 g and delivery window
**Use:** schedule it weekly and diff the datasets to see which lines moved.

#### 2. Product matching on EAN barcodes

**A marketplace seller wants to line this catalogue up against a wholesaler list.**

**Input:** product links in `productDetail` mode
**Output:** EAN-13 on about three products in four, plus the shop's article number
**Use:** join on the barcode instead of guessing whether two product names mean the same jar.

#### 3. Assortment and availability monitoring

**A competitor analyst wants to see what sells out and what comes back.**

**Input:** a shelf, run on a schedule
**Output:** `availability` and the shop's own delivery wording on every row
**Use:** flag the products that spend the most weeks on back order.

#### 4. Competitive assortment research

**A founder is deciding what an Asian specialist range in Germany should contain.**

**Input:** `department: "Any"`, `maxItems: 1000`
**Output:** all 958 products, 153 brands, with the shelf each sits on
**Use:** size the categories before committing to stock.

#### 5. Catalogue and content feeds

**A comparison site or dietary app needs product copy it does not have to write.**

**Input:** product links in `productDetail` mode
**Output:** the full German description, the image gallery, the size and flavour options
**Use:** seed product pages without rewriting every description by hand.

#### 6. Import and distribution research

**An importer wants to see which brands already have German distribution.**

**Input:** the whole shop
**Output:** 153 brand names across food, tableware and cookware
**Use:** shortlist the brands worth approaching, and the ones already spoken for.

#### 7. AI agents and shopping assistants

**An assistant needs live prices for a recipe's ingredients.**

**Input:** a search term per ingredient
**Output:** structured rows with price, unit price and stock state
**Use:** answer "what would this dish cost tonight" with numbers instead of guesses.

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/insider-asia-product-scraper').call({
  operation: 'catalog',
  searchTerms: ['ramen', 'sojasauce'],
  sortBy: 'priceAsc',
  maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/insider-asia-product-scraper').call(
    run_input={
        'operation': 'catalog',
        'department': 'Asiatische-Gerichte',
        'maxItems': 500,
    }
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['productName'], item['price'], item['availability'])
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~insider-asia-product-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "productDetail", "productUrls": ["https://www.insiderasia.de/Tamarinden-Paste.html"]}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: a weekly schedule, or a webhook from your own system
2. **HTTP Request**: call the actor API with your shelf or search terms
3. **Process**: compare the new prices against last week's dataset
4. **Action**: write to a sheet, update your catalogue, or send an alert when something moves

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 products** per run, with every field and every mode
- No credit card required
- Enough to see the shape of the data before you commit

#### PAID Tier (Production Ready)

- **Unlimited** products per run, so the whole 958-product catalogue fits in one go
- Pay per product returned: an empty search, an empty shelf and an unreadable link all cost nothing
- A run report with the itemised charges every time

💰 **A full catalogue export is a single-digit dollar figure.** Catalogue rows are the cheap, broad mode; detail rows cost more because each one is its own request to the shop.

🔗 [View current pricing](https://apify.com/sian.agency/insider-asia-product-scraper?fpr=sian)

### ❓ Frequently Asked Questions

**Q: How many products are there?**
A: 958. Leave the shelf on Everything, clear the search terms and raise the maximum to 1000 for a complete export.

**Q: What is the difference between catalogue mode and detail mode?**
A: Catalogue mode is broad and cheap: one row per product with price, price per unit, brand, image, delivery window and stock state, up to 288 products per request. Detail mode is deep: one row per product link, adding the EAN barcode, the article number, the full description, the shelf path, every image and the size options.

**Q: Do I get EAN barcodes?**
A: In detail mode, on about three products in four. The shop publishes them on product pages only, which is why catalogue rows leave the field empty. Products it is not currently shipping publish less structured data, so their barcode is usually missing.

**Q: Are sold-out products included?**
A: Yes, unless you switch on **In stock only**. The shop keeps them visible and labels them: 89 products in 100 ship in 1-3 days, 8 come back in about three weeks and 1 is unavailable.

**Q: Why does the shop show a comma and my export a dot?**
A: The shop is German and writes 19,00 EUR. Rows carry a real number, 19.0, so a spreadsheet can add them up without a locale conversion. The currency is always EUR.

**Q: Can I cover more than one shelf in a single run?**
A: Yes. Pick one from the dropdown and paste any number of further shelf addresses into **Shelf links**. Duplicates are removed, so a product on two shelves is billed once.

**Q: What output formats are available?**
A: JSON, CSV and Excel, exported straight from the Apify dataset.

**Q: Is this legal?**
A: It reads only what the shop publishes to any visitor. See the legal note below.

### 🐛 Troubleshooting

**A search returns nothing**

- The shop is German. Try `sojasauce` rather than soy sauce, `nudeln` rather than noodles.
- Very narrow terms are genuinely small: `gochujang` returns one product, `miso` five.
- Browse instead: clear the search terms and pick a shelf.

**Fewer rows than the shelf claims**

- Check the maximum. It stops the run the moment that many rows exist.
- Check **In stock only**. It removes about one product in nine.

**A product link comes back as removed**

- The shop takes pages down. Search the catalogue for the product name to find its replacement.

**A row has no EAN**

- Catalogue rows never carry one; only detail mode does.
- Products the shop is not currently shipping usually have no barcode published.

**A price says "from"**

- That product's price depends on a size chosen on the page. `priceIsFrom` is true on the row, and the size options are in `variantOptions` in detail mode.

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

insider Asia is a trademark of its owner. This tool is not affiliated with, endorsed by or sponsored by insider Asia, and reads only information the shop publishes for shoppers.

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `operation` (type: `string`):

Catalogue searches the shop for your keywords, or walks the shelves you pick, and returns one row per product with price, price per 100 g or litre, brand, image, delivery window and in-stock state. Product detail takes product page links and returns one deeper row each. That row adds the EAN barcode, the shop's own article number, the full product description, the shelf path it sits on, every published image and the size or flavour options where a product has them.

## `searchTerms` (type: `array`):

German search words, one per line. The shop is German, so German words find the most: ramen returned 28 products, sojasauce 27, reis 58, sushi 55, essstaebchen 52, nudeln 41, tee 30, curry 24, wok 12, mochi 10, kimchi 9, matcha 7. Each term is searched separately and every product it returns becomes a row. Clear this field, leave the shelf on Everything and leave the shelf links empty to export the whole shop instead - all 958 products.

## `department` (type: `string`):

Which shelf to walk when you are not searching. Every count was measured by walking the shelf on 2026-09-10. Everything returns all 958 products with duplicates removed. The last five entries are a second axis over the same catalogue rather than extra shelves - China sits entirely inside Lebensmittel - so pick them for the cuisine cut, not to reach products the main shelves miss. Leave this on Everything when you are using search terms or shelf links.

## `categoryUrls` (type: `array`):

Paste any shelf address from the shop to walk it, including the sub-shelves the dropdown above does not list - there are 61 in all, from Sojasaucen and Currypasten down to Reiskocher and Lampion. One link per line. Links given here are walked in addition to the shelf picked above.

## `sortBy` (type: `string`):

The shop's own sort order, applied before rows are counted - it decides which products you get when the maximum stops a run early. Every value here was confirmed to change the returned order on both the shelf route and the search route on 2026-09-10. The shop also offers a delivery-time sort; it returns the default order unchanged on a shelf page, so it is deliberately not offered rather than sold and silently ignored.

## `inStockOnly` (type: `boolean`):

Keep only products the shop ships in 1-3 days. Off by default, and that is deliberate: this shop does not hide sold-out articles, but only 11 products in 100 are anything other than immediately available - 8 come back in about three weeks and 1 is unavailable - so switching this on removes roughly a ninth of the catalogue rather than cleaning up a mostly dead feed. Availability and the shop's own delivery window are on every row either way.

## `productUrls` (type: `array`):

Product page addresses, one per line, for detail mode. They all end in .html and sit at the root of the shop. Each becomes one deeper row carrying the EAN barcode, the article number, the full description, the shelf path, the image gallery and any size or flavour options. A link the shop no longer serves is reported as such on its own row instead of being dropped.

## `maxItems` (type: `integer`):

Stops the run once this many rows exist, so a first run costs what you expect. Raise it to 1000 for a whole shelf or for the entire shop - the catalogue is 958 products, so anything above that changes nothing.

## Actor input object example

```json
{
  "operation": "catalog",
  "searchTerms": [
    "ramen",
    "sojasauce",
    "wok"
  ],
  "department": "Any",
  "categoryUrls": [
    "https://www.insiderasia.de/Asiatische-Gerichte/Saucen---Pasten/",
    "https://www.insiderasia.de/Kochutensilien-Wok-Reiskocher/Wok---Co-/"
  ],
  "sortBy": "shopDefault",
  "inStockOnly": false,
  "productUrls": [
    "https://www.insiderasia.de/Tamarinden-Paste.html",
    "https://www.insiderasia.de/yaki-nori.html"
  ],
  "maxItems": 25
}
```

# Actor output Schema

## `insiderasiaDeProduct` (type: `string`):

Every product this run returned.

## `scrapingSummary` (type: `string`):

HTML summary showing successful and failed results with key metrics

# 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 = {
    "operation": "catalog",
    "searchTerms": [
        "ramen"
    ],
    "department": "Any",
    "categoryUrls": [],
    "sortBy": "shopDefault",
    "inStockOnly": false,
    "productUrls": [],
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/insider-asia-product-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 = {
    "operation": "catalog",
    "searchTerms": ["ramen"],
    "department": "Any",
    "categoryUrls": [],
    "sortBy": "shopDefault",
    "inStockOnly": False,
    "productUrls": [],
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/insider-asia-product-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 '{
  "operation": "catalog",
  "searchTerms": [
    "ramen"
  ],
  "department": "Any",
  "categoryUrls": [],
  "sortBy": "shopDefault",
  "inStockOnly": false,
  "productUrls": [],
  "maxItems": 25
}' |
apify call sian.agency/insider-asia-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/insider-asia-product-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/2ieWqTxjshuGgfLRg/builds/t1CW5a5CQsqGfZrFi/openapi.json
