asia4friends Scraper - Asian Grocery Prices & Stock
Pricing
from $10.00 / 1,000 catalogues
asia4friends Scraper - Asian Grocery Prices & Stock
Export the asia4friends catalogue: prices, per-kilo prices, EAN barcodes, stock counts, ingredients, nutrition and origin for 1,343 Asian grocery products sold in Germany.
Pricing
from $10.00 / 1,000 catalogues
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
asia4friends Scraper — Asian Grocery Prices, EAN Codes & Stock 🥢
🎉 The whole asia4friends catalogue — 1,343 products in 19 requests, with the EAN barcode on 85% of them
Built for price analysts, food importers and anyone who needs Asian grocery data from the German market
🔎 What is the asia4friends Asian Grocery Scraper — and when should you use it?
The asia4friends Asian Grocery Scraper turns the public asia4friends.de catalogue — Asian groceries sold in Germany 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: Asian grocery products as rows: the euro price, the EAN barcode, the brand, the shop's article number, the image and whether it is in stock. All of that comes off the listing, so a whole shelf costs one request. Switch to detail mode and each row goes deeper. It then carries the published price per kilo or litre, the live stock count and the unit it is counted in, pack content and the delivery window. The food label comes with it: the full ingredient list, all eight nutrition values, the country of origin, the EU distributor and the best-before date, plus the product description and the customer reviews.
Use something else when: the products are not Asian groceries sold in Germany. Use Tesco Product Scraper for mainstream supermarket groceries, with the same price and per-unit price row shape. Use BAUHAUS Product Scraper for German DIY, garden and interiors, priced and in stock. Use Kleinanzeigen Scraper for Germany's biggest classifieds, for second-hand prices across every category. This actor covers one shop: the 1,343 products asia4friends.de publishes to shoppers, across its nine departments plus the handful of frozen lines that sit outside them. It reads what the shop serves a visitor. It does not compare prices across shops, it does not keep price history unless you schedule it and keep the datasets, and shipping costs and invoice terms are shop policy rather than product data, so they are not published per product and are not returned.
🤖 Use with AI agents
Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/asia4friends-product-scraper
Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — 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:
I want prices, EAN barcodes and stock for Asian groceries sold in Germany using the Apify Actor `sian.agency/asia4friends-product-scraper`.Use it when I need: Asian grocery products as rows: the euro price, the EAN barcode, the brand, the shop's article number, the image and whether it is in stock. All of that comes off the listing, so a whole shelf costs one request. Switch to detail mode and each row goes deeper. It then carries the published price per kilo or litre, the live stock count and the unit it is counted in, pack content and the delivery window. The food label comes with it: the full ingredient list, all eight nutrition values, the country of origin, the EU distributor and the best-before date, plus the product description and the customer reviews.Don't use it when: the products are not Asian groceries sold in Germany — use tesco-product-scraper or bauhaus-product-scraper or kleinanzeigen-scraper instead.How to call it: leave `operation` on `catalog` and give `searchTerms` German words — `kimchi`, `ramen`, `sojasauce`, `kokosmilch`, `mochi`, `reispapier`, `curry` — one per line, and every product each term returns becomes a row. Instead of searching you can paste whole shelves into `categoryUrls`, for example https://asia4friends.de/saucen or https://asia4friends.de/frisch-kuehlware. Clear BOTH fields to export the entire shop, which is 1,343 products; raise `maxItems` to 1500 first, or the default cap of 25 stops it early. `sortBy` decides what you get when that cap bites — `priceDesc` for the most expensive first, `nameAsc` or `nameDesc` alphabetically, `shopDefault` for the shop's own order. `inStockOnly` drops sold-out lines, and anything it drops is never saved and never billed. For the deep fields — price per kilo, live stock count, ingredients, nutrition, country of origin, best-before — set `operation` to `productDetail` and pass product links in `productUrls`; catalogue rows carry the exact link in `productUrl`, so a catalogue run feeds a detail run directly.Start with this input:{"operation": "catalog","searchTerms": ["kimchi"],"sortBy": "shopDefault","maxItems": 50}Ask me which products or departments to cover, whether sold-out lines should be kept or dropped, and whether the per-kilo price, ingredients and nutrition are worth a detail run on top of the catalogue, then run the Actor and summarise the results as a table.
Things you can ask your agent for:
- Export every sauce and paste asia4friends sells with its price and EAN barcode, and rank the brands by how many lines each has on the shelf.
- Pull the whole asia4friends catalogue and list everything that is out of stock right now, cheapest shelf first.
- Take the ten kimchi products, open each one for its price per kilo and ingredient list, and tell me which is the best value per kilo.
Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/asia4friends-product-scraper.md.
📋 Overview
Asian groceries are a blind spot in retail data. The big grocery scrapers cover Rewe, Lidl and Tesco; nobody covers the shops where people actually buy gochujang, mochi and fish sauce. This one reads asia4friends.de — a German shop with 1,343 Asian grocery lines — and hands you every product as a row you can sort, join and chart.
What you get:
- ✅ The barcode, on the listing: 85% of products publish their EAN, so rows join against a wholesaler list or a marketplace feed with no fuzzy name matching
- ⚡ A whole shelf per request: the listing returns 100 products at once, so the full catalogue is 19 requests rather than 1,343
- 🎯 The published price per kilo: German grocery law requires it, and the shop's own figure is returned rather than arithmetic that could be wrong about pack weight
- 💰 Charged per product returned: nothing for a search that matched nothing, nothing for a sold-out line the filter dropped, nothing for a link that could not be read
- 💎 Food data a price feed never has: ingredients, all eight nutrition values, country of origin, EU distributor and best-before date
- ✨ Products with no department: seven frozen lines sit outside the shop's own menu, and a whole-shop run still finds them
✨ Features
- 🛒 Catalogue mode: search the shop or take whole departments, one row per product
- 🔬 Detail mode: per-kilo price, live stock count, ingredients, nutrition, origin, reviews
- 🏷️ EAN barcodes: on the listing itself, no detail call needed
- 📦 Real availability: every listing row states in stock or sold out
- 🔢 Live stock counts: detail rows carry a number and its unit — "40 Glas", not a green dot
- ✅ In-stock filter: drop sold-out lines, and never pay for the ones dropped
- ↕️ Verified sorting: every sort option was checked against real listings before it was offered
- 🧊 Complete exports: a whole-shop run reaches the products the shop's own menu cannot
- 🚫 No double-charging: the same product on three shelves is one row, charged once
- 📄 Run report: an HTML summary with the numbers, the failures and what they cost
🎬 Quick Start
Pick an operation, name what to read, press Start. A bare run searches the shop for kimchi and returns 25 products, so you can see the row shape before committing to anything larger.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~asia4friends-product-scraper/runs?token=YOUR_TOKEN" \-H 'Content-Type: application/json' \-d '{"operation": "catalog", "searchTerms": ["kimchi"], "maxItems": 50}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose what to read
Type German search words into Search terms, or paste department links into Department links. Clear both to export the whole shop.
Step 2: Set the ceiling
Maximum products caps what the run returns and therefore what it can charge. Raise it to 1500 for a complete catalogue export.
Step 3: Run it and open the dataset
Export as CSV, JSON or Excel, or pull it over the API.
That's it. In a couple of minutes you'll have:
- Every matching product with its price, barcode, brand and stock state
- A run report showing what succeeded, what did not and what it cost
- Product links you can feed straight back in for the deep fields
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
operation | string | No | catalog (default) or productDetail |
searchTerms | array | No | German search words, one per line |
categoryUrls | array | No | Department links to take whole shelves |
sortBy | string | No | shopDefault, priceDesc, nameAsc, nameDesc |
inStockOnly | boolean | No | Drop sold-out products (off by default) |
productUrls | array | For detail | Product page links to read in depth |
maxItems | integer | No | Row cap for the run (default 25, max 5000) |
Search a few shelves:
{"operation": "catalog","searchTerms": ["kimchi", "ramen", "sojasauce"],"maxItems": 200}
Export the whole shop:
{"operation": "catalog","searchTerms": [],"categoryUrls": [],"maxItems": 1500}
Go deep on specific products:
{"operation": "productDetail","productUrls": ["https://asia4friends.de/kimchi-wang-410g","https://asia4friends.de/mochi-eis-matcha-sukimo-140g"]}
📤 Output
Every row is flat JSON, exportable as CSV, JSON, Excel or over the API.
| Field | Type | Description |
|---|---|---|
productName | string | Product name as the shop publishes it, in German |
ean | string | EAN barcode — present on about 85% of products |
sku | string | The shop's own article number |
brand | string | Brand name |
price | number | Current price in EUR |
priceIsPublished | boolean | false when the shop publishes no price for a variant parent |
unitPrice | number | Published price per kilo or litre (detail mode) |
unitPriceBasis | string | What the per-unit price is measured against, e.g. 1 kg |
availability | string | InStock or OutOfStock |
stockCount | integer | Units the shop shows in stock (detail mode) |
ingredients | string | Full ingredient list (detail mode) |
nutrition | array | Eight nutrition values per 100 g (detail mode) |
originCountry | string | Country of origin (detail mode) |
bestBefore | string | Best-before date (detail mode) |
categoryPath | string | Department path, e.g. Konserviert > Gemüse |
productUrl | string | Link to the product page |
Example row (catalogue mode):
{"sku": "SC055","ean": "8715035590304","productName": "Ramen Suppenbasis Shoyu Kikkoman 250ml","productUrl": "https://asia4friends.de/ramen-suppenbasis-shoyu-kikkoman-250ml","brand": "Kikkoman","price": 4.39,"priceIsPublished": true,"currency": "EUR","availability": "InStock","inStock": true,"categoryPath": "Saucen","operation": "catalog","scrapedAt": "2026-09-10T08:00:00.000Z"}
💼 Use Cases & Examples
1. Asian grocery price monitoring in Germany
Price analysts tracking a category the mainstream grocery scrapers do not cover.
Input: department links, or nothing at all for the whole shop Output: every product with its price, per-kilo price and stock state Use: a scheduled weekly run turns into a price history for a category with no public index.
2. Product matching on EAN barcodes
Marketplace sellers joining a shop catalogue against their own.
Input: search terms for the lines you carry Output: rows carrying the EAN, brand and article number Use: match on the barcode instead of the product name, and find where the same article sells for more.
3. Food data, ingredients and nutrition
Dietary apps and food importers who need the label, not the price tag.
Input: product links in detail mode Output: ingredients, eight nutrition values, origin, distributor, best-before Use: build a food database for a category most nutrition APIs never covered.
4. Assortment and availability monitoring
Category managers watching what sells out and what comes back.
Input: department links on a schedule Output: in-stock state on every row, live unit counts on detail rows Use: spot the lines that go out of stock every month and the ones that never move.
5. Import and sourcing research
Buyers deciding whether a line is worth importing.
Input: a whole-shop export Output: brand, article number, EAN, pack content, country of origin Use: size a supplier's German shelf presence before opening a conversation.
6. Cuisine and category research
Researchers sizing a cuisine rather than a shelf.
Input: the cuisine cross-cut department link Output: every product the shop files under Korean, Thai, Vietnamese or Japanese Use: compare how much shelf each cuisine gets in the German market.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/asia4friends-product-scraper').call({operation: 'catalog',searchTerms: ['kimchi', 'ramen'],maxItems: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/asia4friends-product-scraper').call(run_input={'operation': 'catalog', 'searchTerms': ['kimchi'], 'maxItems': 200})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['productName'], item.get('ean'), item.get('price'))
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~asia4friends-product-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation": "catalog", "categoryUrls": ["https://asia4friends.de/saucen"], "maxItems": 200}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: a weekly schedule
- HTTP Request: start the actor and wait for the dataset
- Process: compare this week's prices against last week's
- Action: write the changes to a sheet, or alert on anything that moved more than 5%
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 products per run, every field included
- No credit card required
- Enough to see the row shape and check the fields you need are there
PAID Tier (Production Ready)
- Unlimited products per run — a full catalogue export is 1,343
- Charged per product actually returned
💰 You pay for rows, not requests. A search that matched nothing, a department with no products, a sold-out line the in-stock filter dropped and a link that could not be read all cost nothing.
❓ Frequently Asked Questions
Q: How many products are there? A: 1,343 across nine departments, plus seven frozen lines that sit in no department at all. Clear both input fields and raise the maximum to 1500 for a complete export — the whole-shop run finds those seven too.
Q: What is the difference between catalogue mode and detail mode? A: Catalogue mode is broad and cheap: price, EAN, brand, article number, image and in-stock state, a hundred products per request. Detail mode is deep: per-kilo price, live stock count, pack content, delivery window, ingredients, nutrition, origin, distributor, best-before, description and reviews.
Q: Do I get EAN barcodes? A: Yes, on about 85% of products, and they come off the listing, so you never pay for a detail call to get one. The rest carry the shop's article number instead.
Q: Why is the price empty on a few products? A: The shop publishes 0.00 for products sold only in variants, where the price depends on the size you pick. Those rows carry an empty price and a flag saying so. A zero would make every price report built on the data wrong.
Q: Is the data in German? A: Yes. Names, descriptions, ingredient lists, nutrition labels and department names come from the German shop exactly as published, and prices are in EUR. Nothing is translated.
Q: Why can I not sort cheapest first? A: Because the shop does not honour it. It accepts the value and returns its own order anyway, so the option would charge you for a run that quietly ignored it. Most expensive first, A-Z and Z-A were each checked against real listings.
Q: Can I follow one department only? A: Yes. Paste department links and only those shelves are read. One caution: themenwelten is a cuisine cross-cut over the same catalogue rather than a tenth department, so taking it alongside the others returns about 600 products you already have.
Q: Are there hidden costs? A: No. A small run-start fee plus one event per product row. No proxy bill, no key to buy, no per-request surcharge.
🐛 Troubleshooting
A search returned nothing
- The shop is German and searches German words. Try kimchi, ramen, sojasauce, kokosmilch, mochi, reispapier or curry.
- Or paste a department link instead of searching.
A department link returned nothing
- Open it in a browser first. A page holding only sub-shelves and no products of its own returns nothing — pick the shelf itself.
A product link was rejected
- Use a product page link, not a department link. Catalogue rows carry the exact link in
productUrl.
The run stopped early
- Maximum products is 25 by default. Raise it. On the free tier, 25 is also the ceiling.
I got the same products twice
- You probably included themenwelten alongside the other departments. It is a cuisine cross-cut, not a tenth shelf.
⚖️ 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.
asia4friends is a trademark of its owner. This tool is not affiliated with, endorsed by or sponsored by asia4friends, and reads only information the shop publishes for shoppers.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools