momogo Scraper - Asian Grocery Products & Prices avatar

momogo Scraper - Asian Grocery Products & Prices

Pricing

from $10.00 / 1,000 catalogue searches

Go to Apify Store
momogo Scraper - Asian Grocery Products & Prices

momogo Scraper - Asian Grocery Products & Prices

Produkte von momogo.de als sauberes JSON: Preise, Grundpreis, EAN, Lagerbestand, Zutaten, Nährwerte, Bewertungen. Ohne Code, ohne Login.

Pricing

from $10.00 / 1,000 catalogue searches

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

momogo Scraper 🍜 Asian Grocery Products, Prices, EAN & Nutrition

SIÁN Agency Store Google Shopping Price Tracker Tesco Product Scraper BAUHAUS Product Scraper

🎉 All 3,202 momogo products in about ninety seconds, with the EAN and the nutrition table on every row

For price monitors, sourcing teams and anyone tracking Korean, Japanese and Asian food in Germany

Most Shopify scrapers return nothing for this shop. momogo.de runs a separate front end, so the address they all read answers with a 404 and the run ends empty. This actor uses the route the shop's own website uses. It also picks up what the product records leave out: the German description, the ingredients list and the nutrition table live elsewhere on the shop, and are fetched alongside the catalogue at no extra charge.

🔎 What is the momogo Asian Grocery Scraper — and when should you use it?

The momogo Asian Grocery Scraper turns the full momogo.de product catalogue — prices, unit prices, EAN, stock, ingredients and nutrition 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: products from momogo.de as rows. Each one carries the euro price, the crossed-out price and the discount, plus the price per 100 g or 100 ml on the total pack contents. Identity comes next: the EAN, the shop's own SKU, the country of origin and the product type. Then the content the shop writes itself — the German description, the highlight bullets, the full ingredients list and the nutrition table per 100 g. Stock is a flag and a unit count on every row, and sold-out products are returned by default, because the shop keeps them in its catalogue and the difference between two runs is a restock feed. Rows also carry the pack size, the best-before flag, the average rating and review count, every image, and each size variant with its own SKU, price and stock.

Use something else when: the shop is not momogo.de. Use Google Shopping Price Tracker for what every German shop charges for the same article, joined on the product rather than on one retailer. Use Tesco Product Scraper for supermarket groceries with prices and unit prices, for a mainstream rather than a speciality assortment. Use BAUHAUS Product Scraper for German DIY and garden retail, same row shape, different vertical. This actor covers the products momogo.de sells: snacks, drinks, instant food, ingredients, kitchenware, recipe boxes, sets and theme boxes — 3,202 of them on 2026-09-10. It reads what the shop serves a visitor. The shop's recipe pages, blog and ingredient guides are not products and are not part of it, and there is no order, delivery or customer data anywhere in the output.

🤖 Use with AI agents

Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/momogo-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 product data and prices from the German Asian grocer momogo.de using the Apify Actor `sian.agency/momogo-product-scraper`.
Use it when I need: products from momogo.de as rows. Each one carries the euro price, the crossed-out price and the discount, plus the price per 100 g or 100 ml on the total pack contents. Identity comes next: the EAN, the shop's own SKU, the country of origin and the product type. Then the content the shop writes itself — the German description, the highlight bullets, the full ingredients list and the nutrition table per 100 g. Stock is a flag and a unit count on every row, and sold-out products are returned by default, because the shop keeps them in its catalogue and the difference between two runs is a restock feed. Rows also carry the pack size, the best-before flag, the average rating and review count, every image, and each size variant with its own SKU, price and stock.
Don't use it when: the shop is not momogo.de — use google-shopping-price-scraper or tesco-product-scraper or bauhaus-product-scraper instead.
How to call it: leave every field at its default to get the shop's 100 best-selling snacks, or set `category` to `Any` and raise `maxItems` to take the whole 3,202-product catalogue. Narrow with `category` (the shop's own product type), `origin` (its country tag — South Korea, Japan, China, Taiwan, Thailand, Vietnam, Indonesia, India) and `theme` (Sweets, Instant Noodle, Halal, Vegan, Bubble Tea, Mochi, Tteokbokki, Matcha and eighteen more); they combine, and every choice carries the number of products it really returns. `searchTerms` runs the shop's own search index and de-duplicates across terms. `sortBy` decides which products you get when `maxItems` stops the run early — best selling, newest, cheapest, most expensive, name or recently changed. `inStockOnly` and `onSaleOnly` are applied to each product's own data, so nothing is charged for a product they drop. To watch a fixed basket instead of searching, put product addresses in `productUrls` — 40 are looked up in a single request.
Start with this input:
{
"operation": "search",
"category": "Instant Food",
"origin": "South Korea",
"sortBy": "BEST_SELLING",
"maxItems": 200
}
Ask me which part of the shop to cover — a category, a cuisine, a diet tag or the whole catalogue — whether sold-out products should be included, and how many products the run should stop at, then run the Actor and summarise the results as a table.

Things you can ask your agent for:

  • List every Korean instant noodle momogo sells under €3, with the price per 100 g and the EAN.
  • Take the whole catalogue twice a week and tell me which products changed price or went out of stock.
  • Give me every Halal-tagged product with its full ingredients list and nutrition per 100 g.
  • Find the reduced products with the biggest markdown, ranked by discount percentage.

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/momogo-product-scraper.md.

📋 Overview

momogo.de is a German-language online Asian grocer. Korean ramyeon and tteokbokki, Japanese snacks and mochi, bubble tea kits, konjac jelly, sauces, matcha, cooking boxes and kitchenware. This actor turns that catalogue into rows.

Counted on 2026-09-10:

Products in the catalogue3,202
In stock2,074 (64.8%)
Carrying an EAN barcode97.1%
Carrying a German description97.9%
Carrying a nutrition table per 100 g92.2%
Carrying a rating and review count53.6%
Currently reduced368 (11.5%)
Requests to take the whole catalogue27

Origin split by the shop's own country tags: South Korea 1,472 · Japan 925 · China 252 · Taiwan 175 · Thailand 129 · Vietnam 56 · Indonesia 29 · India 28.

Sold-out products stay in the shop's catalogue, so a default run returns the whole assortment rather than only what ships today. Run it twice and the difference between the two exports is your restock feed on one side and your discontinuation feed on the other.

✨ Features

  • The whole shop, or a slice of it. One operation. Take all 3,202 products, or narrow by category, country of origin, theme, diet tag, search term or price.
  • EAN on 97.1% of rows, SKU on 100%. That is what turns a shop feed into something you can join against Amazon, a supermarket or a distributor price list. No fuzzy name matching.
  • Price per 100 g or 100 ml, computed on the total pack contents. A 70 g pack and a 400 g jar become directly comparable. See the FAQ for why this can differ from the shop's own label on multipacks.
  • Ingredients and nutrition. The full German ingredients text on 92.4% of products and calories, fat, saturated fat, carbohydrate, sugar, protein and salt per 100 g on 92.2%.
  • Ratings the shop's own product pages show. Average score and review count on 53.6% of products.
  • Markdowns, with the number. The current price, the crossed-out price and the discount as a percentage.
  • Stock you can trust. Each row carries its own availability and unit count. The shop's own in-stock filter does not work: asking it for in-stock and for sold-out returns the identical set, so this actor reads the product's own flag instead.
  • Filters that were checked, not assumed. Every category, origin and theme in the dropdowns carries the number of products it really returns, and every sort order was verified to change the result.
  • Nothing charged for what you filtered out. The In-stock and Reduced switches drop rows before they are billed, and the run log and report both say how many.

🎬 Quick Start

  1. Open the actor and press Start. The defaults return the shop's 100 best-selling snacks.
  2. Look at the Output tab.
  3. Change Category to Any and Max products to 4000 to take the whole catalogue.

No API key, no login, no proxy configuration.

🚀 Getting Started (3 Simple Steps)

Step 1: Choose what to take

Pick a Category (the shop's own product type), a Country of origin, or a Theme or diet tag. They combine: Snacks alone returns 1,114 products, Snacks from South Korea returns 418, Snacks from Japan returns 414. Set Category to Any and leave the rest alone to walk the whole shop.

Prefer to search? Put words in Search terms. They run against the shop's own search index, and several terms are combined and de-duplicated so a product is never returned twice.

Step 2: Narrow it down, or watch a fixed basket

In-stock products only and Reduced products only filter the rows the shop returns; anything they drop is never charged. Order decides which products you get when Max products stops the run early.

To watch a fixed list instead of searching, paste product addresses into Specific products. Up to 40 are looked up in a single request, which is what makes daily price monitoring cheap.

Step 3: Press Start and export

Results land in the dataset as flat JSON. Export as CSV, JSON, Excel or pull them over the API. An HTML run report with the numbers, the failed items and what the run cost is saved to the key-value store.

📥 Input Configuration

FieldTypeDefaultWhat it does
searchTermslist of words(empty)Words to look for, run against the shop's own search index. Terms are combined with OR and de-duplicated. Measured: ramen 257 products, mochi 103, tteokbokki 72, bubble tea 62.
categoryselectSnackThe shop's product type: Snacks (1,114), Drinks (733), Ingredients (688), Instant food (488), Home (52), Recipe boxes (47), Sets (35), Theme boxes (31), or Any for all 3,202.
originselectAnyThe shop's country tag: South Korea (1,472), Japan (925), China (252), Taiwan (175), Thailand (129), Vietnam (56), Indonesia (29), India (28).
themeselectAny24 theme and diet tags with real counts: Sweets (656), Vegetarian (423), Instant Noodle (365), Halal (313), Low Calorie (253), Vegan (163), Sugar Free (145), Gluten Free (110), Mochi (103), Matcha (90), Bubble Tea (62), Kimchi (44) and more.
productUrlslist of addresses(empty)Watch named products instead of searching. 40 addresses per request. When set, the search fields are ignored.
inStockOnlyswitchfalseKeep only products that can be bought today. Off by default: the sold-out half is real catalogue data.
onSaleOnlyswitchfalseKeep only products sold below their normal price. 368 of 3,202 on 2026-09-10.
sortByselectBEST_SELLINGBest selling, newest, cheapest, most expensive, name A–Z, recently changed, or the shop's own order.
maxItemsnumber100Stop after this many products. Also your spending ceiling. 4000 takes everything with room to grow.

Example: every Korean instant noodle, cheapest first:

{
"operation": "search",
"category": "Instant Food",
"origin": "South Korea",
"sortBy": "PRICE_ASC",
"maxItems": 500
}

Example: the whole catalogue

{
"operation": "search",
"category": "Any",
"maxItems": 4000
}

📤 Output

One row per product. Flat JSON, exportable as CSV, JSON, Excel or over the API.

FieldWhat it is
productNameThe product name as the shop writes it
priceEur · compareAtPriceEur · onSale · discountPercentThe current price, the crossed-out price, whether it is reduced and by how much
unitPriceEur · unitPriceBasisPrice per 100 g or 100 ml, on the total contents of the pack
currencyAlways EUR
inStock · inventoryQuantityWhether it can be bought today, and how many units are left
categoryThe shop's product type
originCountry · originCountriesThe shop's country tag. 119 of 3,202 products carry more than one (the multi-cuisine boxes), so both the primary and the full list are returned
brandNameThe vendor the shop credits
sku · barcodeThe shop's own article number and the EAN
netContent · netContentUnit · packQuantity · packsPerItemTotal contents in g or ml, and how the pack is made up
weightKgShipping weight
descriptionText · keyPointsThe German product description and its highlight bullets
ingredientsTextThe full ingredients list
nutritionPer100gCalories, fat, saturated fat, carbohydrate, sugar, protein and salt
bestBeforeDateThe best-before flag where the shop publishes one
ratingAverage · reviewCountThe score and the number of reviews on the shop's product page
themeTagsEvery tag the shop attaches to the product
imageUrl · imageUrlsThe main image and the full set
variantCount · variantsSize variants, each with its own SKU, EAN, price and stock
productUrl · productSlug · productIdWhere the product lives and how to identify it
shopUpdatedAtWhen the shop last changed the product, which is what change detection keys on

A real row:

{
"productName": "ECA Gochugaru 100g - Rote Chiliflocken",
"priceEur": 4.94,
"compareAtPriceEur": 5.49,
"onSale": true,
"discountPercent": 10,
"unitPriceEur": 4.94,
"unitPriceBasis": "per 100 g",
"inStock": true,
"inventoryQuantity": 7358,
"category": "Ingredient",
"originCountry": "South Korea",
"sku": "IG-0001-1",
"barcode": "X001M8XOHN",
"netContent": 100,
"netContentUnit": "g",
"ingredientsText": "rote Chili",
"nutritionPer100g": { "calories": "1594KJ/378Kcal", "fat": "10", "carbohydrate": "57", "protein": "15", "salt": "0" },
"bestBeforeDate": "2028-02-28",
"ratingAverage": 4.4,
"reviewCount": 9,
"productUrl": "https://www.momogo.de/produkt/gochugaru"
}

💼 Use Cases & Examples

1. Price and Markdown Monitoring

Take a category or a fixed basket on a schedule and watch what moves: the current price against the crossed-out one, the discount as a percentage, and the price per 100 g that makes a 70 g pack comparable with a 400 g jar. 368 of 3,202 products carried a markdown on 2026-09-10.

2. Assortment and Sourcing Research

Map what a German Asian grocer actually stocks, by product type, by country of origin and by theme. 1,472 products are Korean, 925 Japanese, 252 Chinese; 313 are tagged Halal, 163 Vegan and 110 Gluten Free.

3. Competitive Price Benchmarking on EAN

97.1% of products carry an EAN and 100% a SKU. The same Samyang Buldak pack sold by momogo, by Amazon and by a supermarket can be joined on the barcode rather than on a fuzzy product-name match.

4. Product Feed with Ingredients and Nutrition

German names and descriptions, highlight bullets, the full ingredients list, the nutrition table per 100 g, pack size, net content, images, weights, prices and stock. Enough to load straight into a comparison site, a dropshipping catalogue or a food-labelling database.

5. Stock, Restock and Discontinuation Tracking

Run it daily and the difference between two exports is your restock feed on one side and your discontinuation feed on the other. 1,128 products were sold out on 2026-09-10.

6. Diet and Allergen Research

Halal, Vegan, Vegetarian, Gluten Free, Sugar Free and Low Calorie are the shop's own tags, and every row carries the ingredients text behind them. Useful for anyone auditing a speciality assortment against a dietary standard.

🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('sian.agency/momogo-product-scraper').call({
operation: 'search',
category: 'Instant Food',
origin: 'South Korea',
sortBy: 'BEST_SELLING',
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const p of items) {
console.log(p.productName, p.priceEur, p.unitPriceEur, p.barcode);
}

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("sian.agency/momogo-product-scraper").call(run_input={
"operation": "search",
"theme": "Halal",
"category": "Any",
"maxItems": 500,
})
for p in client.dataset(run["defaultDatasetId"]).iterate_items():
print(p["productName"], p["priceEur"], p.get("barcode"))

cURL

curl -X POST "https://api.apify.com/v2/acts/sian.agency~momogo-product-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operation": "search",
"category": "Snack",
"origin": "Japan",
"sortBy": "BEST_SELLING",
"maxItems": 100
}'

Automation Workflows (N8N / Zapier / Make)

Run it on a schedule and push the rows straight into your own stack:

  • N8N. An HTTP Request node against run-sync-get-dataset-items, then a Compare Datasets node against yesterday's export to emit only the price changes.
  • Zapier. Schedule → Apify (Run Actor) → Google Sheets, appending the reduced products every morning.
  • Make. Apify → Iterator → Airtable, keeping a live product feed with images and EANs.

📊 Performance & Pricing

FREE Tier (Try It Now)

Free Apify accounts get a capped run of up to 25 products, so you can see the row shape before spending anything. A run that matches nothing is never charged.

Unlimited rows, charged per product returned. The whole 3,202-product catalogue walks in about 27 requests and ninety seconds, so a full nightly export is one short run.

Nothing is charged for a product your own In-stock or Reduced switches drop, for an address the shop no longer publishes, or for a search that matched nothing. The run report itemises exactly what the run cost.

❓ Frequently Asked Questions

How many products are there?

3,202 on 2026-09-10, of which 2,074 (64.8%) were in stock. The shop keeps sold-out products in its catalogue, which is why a default run returns all of them.

Do I need an API key or a login?

No. Pick a category and press Start.

Why do so many other Shopify scrapers return nothing for this shop?

Because they all read the same address, /products.json, and on momogo.de that address returns 404. The shop runs a separate front end, so the usual route simply is not there. This actor uses the route the shop's own website uses.

Is there a separate operation, or a surcharge, for the descriptions and nutrition?

No. The German description, the highlight bullets, the ingredients, the nutrition table, the pack size, the rating and the review count arrive on every row at no extra charge. They are fetched 500 products at a time alongside the catalogue, so charging a second event for them would be charging twice for the same row.

The price per 100 g does not match what the shop's page shows. Which is right?

Both are arithmetic on the same numbers, on a different basis, and they only differ on multipacks, 273 of 3,202 products. The shop divides the price by the size of ONE pack and ignores how many packs are in the box, which is why its own page prints €383 per 100 g for a 30 × 3 g ginseng tea that costs €11.49. This actor divides by the total contents (90 g), giving €12.77, because that is the number a price comparison needs. Every row also carries packQuantity, packsPerItem and netContent, so the shop's own label can be reproduced exactly if you want it.

Are prices in euros and do they include VAT?

Prices are in euros exactly as the shop publishes them, which is the gross price a German shopper pays: 7% VAT on most food, 19% on the rest.

Can I get one row per pack size?

Rows are one per product, which is what you are charged for. 378 of 3,202 products have variants, and every variant travels inside the row with its own SKU, EAN, price and stock, so a product sold in three sizes is one row and one charge rather than three.

Why is there no in-stock filter on the shop's side?

There is one, but it does not work: asking the shop for in-stock products and for sold-out products returns the identical 2,080 products, neither of which is the real answer. So this actor reads each product's own stock flag instead, which is accurate, and applies the switch itself.

I filtered to Japan but some rows say South Korea. Why?

Because 119 of 3,202 products carry more than one country tag — the multi-cuisine boxes are tagged for every cuisine they draw on. The filter matched the tag you asked for; originCountry reports the first in the shop's own order, and originCountries lists all of them, so you can see exactly which tags a row really has.

Why is "oldest first" not an ordering option?

Because it returns the shop's own order byte for byte, so it would be the same choice under two names. Every order that IS offered was verified to change the result.

🐛 Troubleshooting

My run returned no rows.

Probably nothing is wrong. The filters combine, so a narrow combination can genuinely have no members. Snacks alone returns 1,114, Snacks from South Korea 418, and Snacks from India none at all. The dataset carries a row explaining which combination came back empty, and you were not charged for it. Widen one field at a time.

A product I asked for came back as "no longer in the shop".

The shop has removed it. Drop the address from Specific products, or search the shop instead to see what replaced it.

A row has no description, ingredients or nutrition.

Those come from the shop's own product pages and are not filled in for every product: 97.9% carry a description, 92.4% ingredients and 92.2% nutrition. The rest are genuinely blank on the shop's own site.

A row has no rating.

53.6% of products have at least one review. The rest have none, and an empty rating is left empty rather than shown as zero.

The run stopped before Max products.

Either the filters ran out of matching products, or a free Apify account hit the 25-row cap. The run log says which.

The shop is rate-limiting or timing out.

Lower Max products, or space the runs further apart on a schedule. Every request already retries five times with a growing delay.

Yes. This actor reads only what momogo.de publishes to any visitor. It collects no personal data, no customer data and no order data; every field is a product attribute the shop shows on its own pages.

Web scraping of publicly available information is legal in the EU and the US. Prices, images, descriptions, ingredients and nutrition are the shop's own content: you may analyse them, but republishing them wholesale may need the shop's permission. If you plan to redistribute the data, take your own legal advice.

momogo and momogo.de are trademarks of their respective owner. This actor is not affiliated with, endorsed by, or sponsored by momogo.

🤝 Support

Telegram Support