# All Shopping Scraper (`agentx/all-shopping-scraper`) Actor

Search 23 shopping routes across global marketplaces, regional retailers, Benelux and Turkey platforms, and Japan price-comparison sources. Returns normalized product, price, seller, image, availability, source URL, query, and rank data.

- **URL**: https://apify.com/agentx/all-shopping-scraper.md
- **Developed by:** [AgentX](https://apify.com/agentx) (community)
- **Categories:** E-commerce, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.77 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## All Shopping Scraper - Multi-Platform Product Data Extraction API for Ecommerce Marketplaces

**All Shopping Scraper is a multi-source product intelligence API for ecommerce teams that need one dataset across global marketplaces, regional retailers, Benelux and Turkey platforms, and Japan shopping sources.** Search by keyword, country, and optional platform allowlist across 23 routes and 33 country inputs. The Actor returns a normalized 58-field product dataset with titles, prices, currency, images, seller signals, availability text, product URLs, source URLs, query, rank, and Apify processing metadata. Pay-per-result pricing is $0.01 per Actor start plus $0.0053 per product result on the FREE tier.

[![Product Data](https://img.shields.io/badge/Product_Data-ffd700?style=for-the-badge&color=ffd700)](https://apify.com/agentx/all-shopping-scraper) [![Price Intelligence](https://img.shields.io/badge/Price_Intelligence-ffd700?style=for-the-badge&color=ffd700)](https://apify.com/agentx/all-shopping-scraper) [![23 platform routes](https://img.shields.io/badge/23_platform_routes-ffd700?style=for-the-badge&color=ffd700)](https://apify.com/agentx/all-shopping-scraper) [![33 countries](https://img.shields.io/badge/33_countries-ffd700?style=for-the-badge&color=ffd700)](https://apify.com/agentx/all-shopping-scraper)

---

### Why Choose This API

#### One Product Dataset Across Different Shopping Models

**🎯 Product Search in One API Call**
Run one keyword search across marketplaces, retailers, price-comparison sites, and country-specific shopping routes. The output keeps source platform, site, country, query, and rank so analysts can compare what each source actually returned.

**💰 Price Intelligence When Sources Disclose It**
Normalize prices from sources that may expose list prices, sale prices, original price text, discounts, promotions, availability, seller signals, and localized currencies differently.

**🌍 Country-Aware Product Coverage**
All Shopping Scraper supports 33 countries: Australia, Austria, Belgium, Brazil, Canada, Chile, Egypt, France, Germany, Hong Kong, Hungary, India, Indonesia, Ireland, Italy, Japan, Luxembourg, Malaysia, Mexico, Netherlands, New Zealand, Poland, Portugal, Saudi Arabia, Singapore, Spain, South Korea, Sweden, Switzerland, Turkey, United Arab Emirates, United Kingdom, United States. Country routing follows source marketplace behavior instead of applying a fake post-search filter.

**🤖 AI-Ready JSON Output**
Structured records are designed for retail BI, price dashboards, product-feed enrichment, RAG systems, shopping agents, and product-matching workflows that need consistent fields across different ecommerce formats.

**⚡ Managed Processing and Platform-Aware Collection**
Request up to `max_results` product records while preserving source-specific behavior. The Actor does not force one marketplace's ranking, pagination, or seller model onto another source.

**📊 58 Data Fields Per Product**
Extract product intelligence including:

- Product metadata (title, brand, category, description, images)
- Pricing data (price, currency, price text, discount, promotion text)
- Seller and fulfillment data (seller, shipping, delivery, return signals)
- Availability, rating, review, rank, source URL, and processing metadata

---

### Quick Start Guide

#### How to Extract Product Data in 3 Steps

##### Step 1: Configure Your Search

[Open Actor Input](https://apify.com/agentx/all-shopping-scraper)

##### Step 2: Run the Actor

Click **Start** and the scraper will extract product data from the supported shopping source for your selected country.

##### Step 3: Download Your Data

Export results in JSON format or access via API. Data includes the 58-field product dataset schema, with optional fields populated only when the source platform exposes them.

---

### Input Parameters

#### Required Inputs

| Parameter | Type | Description | Example Values |
| --------- | ---- | ----------- | -------------- |
| `keyword` | string | Product name, model, brand, or search phrase | `"wireless mouse"`, `"wireless earbuds"` |
| `country` | string | Target country or source market for product search | `"United States"` |
| `max_results` | integer | Maximum products to request per selected platform or route | `10`, `100`, `10000` |

#### Optional Filters and Output Settings

| Parameter | Type | Description | Example Values |
| --------- | ---- | ----------- | -------------- |
| `platforms` | array | Optional platform allowlist; omitted or empty means all routes that support the selected country | `["Amazon"]`, `["AliExpress", "Walmart"]` |
| Source optional fields | mixed | Optional output fields such as seller, rating, discount, shipping, and variants are populated only when the source exposes them | `seller`, `rating`, `shipping_text` |

#### Platform Capability Matrix

`✅` means the adapter uses that capability in the source request or reads it from the source response. `❌` means the adapter does not currently expose that capability; it is not simulated with post-search filtering or Dataset backfill.

| Platform | Country routing | Keyword search | Price/currency raw | Availability raw | Pagination | Detail enrich | Notes |
| -------- | --------------- | -------------- | ------------------ | ---------------- | ---------- | ------------- | ----- |
| Amazon | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Country selects the Amazon domain; source order is preserved. |
| AJIO | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | India route; repeated detail-endpoint failure degrades to list rows. |
| AliExpress | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Country selects source market, locale, currency, and ship-to request values. |
| eBay | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | Country selects the eBay domain; no availability field is synthesized. |
| Target | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | US route; the source API requires store `3991` and its purchasability context. |
| Flipkart | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | India route. |
| OTTO | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Germany route; repeated detail challenge failure degrades to list rows. |
| Argos | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | UK route; the current public search page is consumed without invented pagination. |
| John Lewis | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | UK API page/chunk pagination with HTML fallback. |
| Hepsiburada | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Turkey route. |
| Rakuten | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | Japan route; no availability field is synthesized. |
| Kakaku | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | Japan route; no availability field is synthesized. |
| Big W | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Australia request does not inject a fixed state or metro zone. |
| Blibli | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Indonesia offset pagination. |
| Bol.com | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Netherlands/Belgium market is carried by the source URL and locale headers. |
| JB Hi-Fi | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | AU and NZ use separate live Algolia profiles and source eligibility filters. |
| Canadian Tire | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | CA route; the source API requires store `0100`; category redirects use the source-provided category link. |
| MediaMarkt | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Country selects the domain and fixed site currency; LU/PT use the source Shopify endpoint. |
| Walmart | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | US route; `itemStacks` source group and ordering are preserved. |
| ASOS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Country selects source country/store/currency/language request values. |
| Myntra | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | India route; PLA and organic rows keep `listPageOrdering`. |
| Nykaa | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | India API offset pagination with source HTML fallback. |
| TradeIndia | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | India route; availability is only populated when detail JSON-LD exposes it. |

#### `platforms` Format Options

Use `platforms` only on the multi-platform All Shopping Scraper. Leave it empty to route all platforms supported by the selected country, or provide a platform allowlist.

**Multi-platform examples**:

- `[]` - route all platforms supported by the selected country
- `["Amazon"]` - route Amazon only when supported by the selected country
- `["AliExpress", "Walmart"]` - route only the selected supported platforms

#### Search Formatting Best Practices

**Product Name or Category**:

- `"wireless mouse"`
- `"Smart TV"`
- `"PlayStation 5"`

**Brand and Model**:

- `"Sony WH-1000XM5"`
- `"iPhone case"`
- `"Lenovo laptop"`

**Country Selection**:

- Use the separate `country` parameter for marketplace routing.
- Do not append the country name to `keyword` unless the source marketplace expects it as part of the product phrase.

> **Important**: Product search ranking is controlled by the source platform. The Actor preserves `query`, `source_url`, and `rank` so users can compare the dataset with the original source behavior.

#### Supported Countries for Product Scraping

Australia, Austria, Belgium, Brazil, Canada, Chile, Egypt, France, Germany, Hong Kong, Hungary, India, Indonesia, Ireland, Italy, Japan, Luxembourg, Malaysia, Mexico, Netherlands, New Zealand, Poland, Portugal, Saudi Arabia, Singapore, Spain, South Korea, Sweden, Switzerland, Turkey, United Arab Emirates, United Kingdom, United States

#### Country-Aware Platform Routing

The runtime selects product routes from the Actor input and the selected country. Country-specific platforms are used only when the selected `country` matches the coverage listed below.

| Platform route | Country / market routing |
| -------------- | ------------------------ |
| Amazon | Routed only when supported by the selected country input. |
| AJIO | Routed only when supported by the selected country input. |
| AliExpress | Routed only when supported by the selected country input. |
| eBay | Routed only when supported by the selected country input. |
| Target | Routed only when supported by the selected country input. |
| Flipkart | Routed only when supported by the selected country input. |
| OTTO | Routed only when supported by the selected country input. |
| Argos | Routed only when supported by the selected country input. |
| John Lewis | Routed only when supported by the selected country input. |
| Hepsiburada | Routed only when supported by the selected country input. |
| Rakuten | Routed only when supported by the selected country input. |
| Kakaku | Routed only when supported by the selected country input. |
| Big W | Routed only when supported by the selected country input. |
| Blibli | Routed only when supported by the selected country input. |
| Bol.com | Routed only when supported by the selected country input. |
| JB Hi-Fi | Routed only when supported by the selected country input. |
| Canadian Tire | Routed only when supported by the selected country input. |
| MediaMarkt | Routed only when supported by the selected country input. |
| Walmart | Routed only when supported by the selected country input. |
| ASOS | Routed only when supported by the selected country input. |
| Myntra | Routed only when supported by the selected country input. |
| Nykaa | Routed only when supported by the selected country input. |
| TradeIndia | Routed only when supported by the selected country input. |

##### Example Input Configuration

```json
{
  "keyword": "wireless mouse",
  "country": "United States",
  "max_results": 100,
  "platforms": [
    "Amazon",
    "AliExpress",
    "Walmart"
  ]
}
````

***

### Output Data Schema

#### Complete Product Listing Data Structure

Each extracted product record uses the shared AgentX shopping dataset structure with 58 normalized fields. Fields are populated only when the source listing, source API, or detail page exposes them reliably.

#### Product Metadata Fields

| Field | Type | Description |
| ----- | ---- | ----------- |
| `main_image` | string/null | Primary product image URL |
| `image_urls` | array/null | Deduplicated product image URLs |
| `title` | string/null | Product title |
| `brand` | string/null | Product brand |
| `category`, `breadcrumbs` | string/array/null | Product category and breadcrumb path |
| `description`, `features`, `specifications` | string/array/object/null | Product content and detail-page fields |

#### Offer & Availability Details

| Field | Type | Description |
| ----- | ---- | ----------- |
| `stock_status`, `stock_text` | string/null | Normalized and original availability text |
| `sales_text`, `buy_limit` | string/integer/null | Demand or purchase-limit signals |
| `rating`, `review_count` | number/integer/null | Public rating and review signals |
| `sponsored` | boolean/null | Whether the source marks the result as sponsored |

#### Pricing Information

| Field | Type | Description |
| ----- | ---- | ----------- |
| `price` | number/null | Current numeric price |
| `was_price` | number/null | Original or strikethrough price |
| `currency` | string/null | ISO currency code or source currency signal |
| `price_text` | string/null | Original price text for verification |
| `discount_pct`, `discount_text`, `promo_text`, `installment_text` | mixed/null | Discount, promotion, coupon, and installment signals |

#### Seller Data

| Field | Type | Description |
| ----- | ---- | ----------- |
| `seller`, `seller_url`, `seller_score` | string/number/null | Seller, shop, or marketplace signals |
| `shipping_text`, `shipping_cost` | string/number/null | Shipping text and numeric shipping cost when available |
| `delivery_text`, `pickup_text`, `return_text`, `return_days`, `warranty_text` | mixed/null | Delivery, pickup, return, and warranty signals |
| `platform`, `site`, `country`, `product_url`, `source_url`, `query`, `rank` | mixed/null | Source traceability fields for query-to-result audits |

#### Example JSON Output

```json
{
  "main_image": "https://example.com/images/wireless-mouse.jpg",
  "image_urls": [
    "https://example.com/images/wireless-mouse.jpg"
  ],
  "title": "Wireless Mouse with Bluetooth and USB Receiver",
  "brand": "Logitech",
  "category": "Electronics",
  "description": "Example All Shopping product record for README documentation.",
  "features": [
    "Source-linked product row",
    "Normalized AgentX shopping schema"
  ],
  "product_id": "EXAMPLE-001",
  "price": 29.99,
  "currency": "USD",
  "price_text": "$29.99",
  "stock_status": "in_stock",
  "stock_text": "In stock",
  "rating": 4.6,
  "review_count": 1248,
  "seller": "Example Store",
  "platform": "amazon",
  "site": "amazon.com",
  "country": "US",
  "product_url": "https://www.amazon.com/dp/B0EXAMPLE",
  "source_url": "https://www.amazon.com/s?k=wireless+mouse",
  "query": "wireless mouse",
  "rank": 1,
  "sponsored": false,
  "processor": "https://apify.com/agentx/all-shopping-scraper",
  "processed_at": "2026-06-29T00:00:00+00:00"
}
```

#### Export Formats

Export results as JSON, JSONL, CSV, Excel, XML, RSS, or access records programmatically through the Apify dataset API.

***

### Integration Examples

#### Actor ID for Platform Integration

- Actor ID: `agentx/all-shopping-scraper`
- REST API path: `agentx~all-shopping-scraper`
- Actor URL: `https://apify.com/agentx/all-shopping-scraper`

#### Ⓜ️ [Make.com Setup:](https://www.make.com/en/register?pc=marketingme)

Use the Apify module, select `agentx/all-shopping-scraper`, pass the JSON input, then map dataset items into your spreadsheet, pricing database, product feed, or alert workflow.

#### 🎱 [N8N.io Setup:](https://n8n.io/)

Use the Apify node or HTTP Request node to run the Actor, then fetch `defaultDatasetId` items for downstream automation.

#### Python Integration Example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

## Prepare Actor input
run_input = {"keyword": "wireless mouse", "country": "United States", "max_results": 100, "platforms": ["Amazon", "AliExpress", "Walmart"]}

## Run the Actor and wait for completion
run = client.actor("agentx/all-shopping-scraper").call(run_input=run_input)

## Fetch results from dataset
items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in items:
    print(item.get("title"), item.get("price"), item.get("currency"))
```

#### JavaScript/Node.js Integration

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

const client = new ApifyClient({ token: "YOUR_APIFY_TOKEN" });
const run = await client.actor("agentx/all-shopping-scraper").call({"keyword": "wireless mouse", "country": "United States", "max_results": 100, "platforms": ["Amazon", "AliExpress", "Walmart"]});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => console.log(item.title, item.price, item.currency));
```

#### JSON-LD Metadata

```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "All Shopping Scraper",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Cloud",
  "url": "https://apify.com/agentx/all-shopping-scraper",
  "provider": {
    "@type": "Organization",
    "name": "AgentX",
    "url": "https://apify.com/agentx"
  },
  "offers": {
    "@type": "Offer",
    "price": 0.0053,
    "priceCurrency": "USD",
    "description": "Pay-per-result event pricing"
  }
}
```

***

### Pricing & Cost Calculator

#### Transparent Pay-Per-Use Model

All Shopping Scraper uses pay-per-event pricing. `apify-actor-start` is charged at $0.01 when the Actor starts. The dataset billing event is `result`: FREE tier $0.0053 per delivered product record, and GOLD/PLATINUM/DIAMOND $0.00477 per delivered product record.

#### Cost Examples

| Delivered product records | FREE-tier result cost | Notes |
| ------------------------- | --------------------- | ----- |
| 100 | $0.53 | Small validation run |
| 1,000 | $5.30 | Standard category or keyword run |
| 10,000 | $53.00 | Large export before account-tier discounts |

#### Pricing Scope

Pricing applies to delivered dataset records. The final result count can be lower than `max_results` when the source platform returns fewer public products, reaches a source-side boundary, or omits usable product rows.

***

### Use Cases & Applications

#### Ecommerce & Marketplace Intelligence

Track product prices, availability, images, seller signals, and source ranking across marketplace, retailer, and price-comparison routes without maintaining separate platform parsers.

#### Market Research & Business Intelligence

Compare assortment and price bands across country-specific sources such as US marketplaces, India retail routes, Benelux Bol.com listings, Turkey Hepsiburada listings, and Japan Rakuten/Kakaku sources.

#### AI & Machine Learning Applications

Feed one normalized product schema into RAG systems, shopping agents, product matching, recommendation workflows, and market-intelligence dashboards that need source traceability.

#### Pricing & Assortment Analytics

Schedule repeated runs by keyword, country, and optional platform allowlist to monitor rank movement, price changes, stock text, seller shifts, and source-specific coverage gaps.

#### Product Feed & Catalog Enrichment

Use normalized titles, brands, images, product URLs, source URLs, categories, features, specifications, and rank fields to enrich catalogs while preserving where every product row came from.

***

### FAQ

#### What product platforms does All Shopping Scraper support?

All Shopping Scraper supports: Amazon, AJIO, AliExpress, eBay, Target, Flipkart, OTTO, Argos, John Lewis, Hepsiburada, Rakuten, Kakaku, Big W, Blibli, Bol.com, JB Hi-Fi, Canadian Tire, MediaMarkt, Walmart, ASOS, Myntra, Nykaa, TradeIndia. Country support depends on the actor input schema and source marketplace coverage.

#### How many products can All Shopping Scraper extract per selected platform?

`max_results` is the requested upper bound per selected route. The final count can be lower when a source returns fewer public products, blocks pagination, reaches its own boundary, or exposes fewer usable rows for that country.

#### Which countries are supported?

Supported countries are defined by the Actor input schema: Australia, Austria, Belgium, Brazil, Canada, Chile, Egypt, France, Germany, Hong Kong, Hungary, India, Indonesia, Ireland, Italy, Japan, Luxembourg, Malaysia, Mexico, Netherlands, New Zealand, Poland, Portugal, Saudi Arabia, Singapore, Spain, South Korea, Sweden, Switzerland, Turkey, United Arab Emirates, United Kingdom, United States.

#### How fresh is the product data?

The Actor reads current public search/listing responses at run time. Marketplace ranking, availability, price, and seller signals can change between runs.

#### What data format does the scraper output?

The default Apify dataset can be exported as JSON, JSONL, CSV, Excel, XML, RSS, or consumed through the dataset API.

#### Can I integrate this with my existing tools?

Yes. Use the Apify Client SDK, REST API, Make, n8n, Zapier-style workflows, webhooks, or direct dataset exports.

#### Is the scraper compatible with AI frameworks?

Yes. The normalized JSON dataset is suitable for LangChain, CrewAI, AutoGPT, RAG pipelines, and custom shopping agents.

#### How do I handle limited source availability?

Use `query`, `source_url`, `platform`, `site`, `country`, `rank`, and `processed_at` to verify what the source returned for that run.

#### Why do some search results seem unrelated to my search terms?

Shopping sources use different ranking systems: retail search, marketplace relevance, price-comparison sorting, sponsored placements, and localized availability can all affect results. The Actor preserves the source ranking instead of rewriting it.

#### Why are some price fields empty?

Some source listings hide prices, require selection, show unavailable products, or expose price only on detail pages. Optional fields remain empty when the source does not expose them reliably.

#### What if no products are found?

Try a broader keyword, confirm the selected country is supported, and check whether the same query returns public results on the source marketplace.

#### Can I get seller or shop information?

Seller and shop fields are populated when the source exposes them. Some platforms show retailer-owned listings or omit seller details.

#### How accurate is rating data?

Rating and review fields reflect the public values exposed by the source at run time. They should be treated as marketplace-provided signals.

#### How are platform-specific failures handled?

The Actor keeps source-specific failures isolated where possible. Use run logs, `source_url`, and dataset counts to diagnose source-side blocks or empty responses.

#### Why do different platforms show different product counts?

Amazon, AliExpress, Bol.com, Hepsiburada, Rakuten, Kakaku, and retail routes each expose different ranking, pagination, availability, deduplication, and result-limit behavior. The Actor preserves those differences so users see realistic source data.

***

### SEO Keywords & Search Terms

#### Primary Keywords

`All Shopping Scraper`, `multi-platform product scraper`, `shopping data API`, `ecommerce marketplace scraper`

#### Long-Tail Keywords

`scrape product prices across marketplaces`, `multi-country ecommerce product data`, `Apify shopping scraper API`, `product search dataset by country`

#### Industry Terms

`marketplace intelligence`, `cross-market price monitoring`, `product feed enrichment`, `retail assortment analytics`, `AI shopping data`

#### Location-Based Keywords

`United States ecommerce product data`, `Benelux marketplace data`, `Turkey ecommerce scraper`, `Japan product price comparison data`, `country-aware product search API`

#### Use Case Keywords

`competitor price tracking`, `marketplace rank monitoring`, `retail catalog enrichment`, `cross-border product research`, `AI product intelligence`

***

### Trust & Certifications

All Shopping Scraper is maintained by AgentX and runs on Apify infrastructure. The output keeps source URLs, query values, platform names, country, rank, and processing timestamps so users can audit the relationship between input and dataset rows.

***

### Legal & Compliance

#### Data Rights & Usage

Use exported product data according to applicable laws, marketplace terms, and your own compliance requirements. The Actor returns public product/search information and does not grant resale or intellectual-property rights.

#### Privacy Compliance

The Actor is built for product and listing data, not private account data, checkout data, or personal shopper profiles.

#### Platform Terms of Service

All Shopping Scraper respects source-platform public responses. Platform ranking, availability, pricing, and result limits can change independently of the Actor.

#### Enterprise Support

For high-volume usage, dedicated workflows, or compliance review, contact AgentX through the Apify Actor page or publisher profile.

***

### Related Tools

#### Shopping & Ecommerce

- [All Shopping Scraper](https://apify.com/agentx/all-shopping-scraper)
- [AliExpress Product Scraper](https://apify.com/agentx/aliexpress-product-scraper)
- [Bol Product Scraper](https://apify.com/agentx/bol-product-scraper)
- [Hepsiburada Product Scraper](https://apify.com/agentx/hepsiburada-product-scraper)
- [Kakaku Product Scraper](https://apify.com/agentx/kakaku-product-scraper)
- [Rakuten Product Scraper](https://apify.com/agentx/rakuten-product-scraper)

***

### Support & Community

- Actor page: <https://apify.com/agentx/all-shopping-scraper>
- Publisher page: <https://apify.com/agentx>
- Use Apify run logs and dataset previews to verify `query`, `country`, `source_url`, and `rank` when diagnosing result differences.

*Last updated: 2026-07-20. Maintained by AgentX.*

# Actor input Schema

## `keyword` (type: `string`):

Product keyword, model, brand, or query to search for

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

Country used to route ecommerce platforms and country sites

## `max_results` (type: `integer`):

Maximum number of product records to return per platform

## `platforms` (type: `array`):

Optional list of product platforms to search. Leave empty to use all supported platforms for the selected country.

## Actor input object example

```json
{
  "keyword": "wireless mouse",
  "country": "United States",
  "max_results": 10,
  "platforms": []
}
```

# Actor output Schema

## `results` (type: `string`):

Product records returned by this actor with normalized fields and source URLs.

# 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 = {
    "keyword": "wireless mouse",
    "country": "United States",
    "max_results": 10,
    "platforms": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("agentx/all-shopping-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 = {
    "keyword": "wireless mouse",
    "country": "United States",
    "max_results": 10,
    "platforms": [],
}

# Run the Actor and wait for it to finish
run = client.actor("agentx/all-shopping-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "keyword": "wireless mouse",
  "country": "United States",
  "max_results": 10,
  "platforms": []
}' |
apify call agentx/all-shopping-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=agentx/all-shopping-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "All Shopping Scraper",
        "description": "Search 23 shopping routes across global marketplaces, regional retailers, Benelux and Turkey platforms, and Japan price-comparison sources. Returns normalized product, price, seller, image, availability, source URL, query, and rank data.",
        "version": "1.0",
        "x-build-id": "9EhgUttqqPmk7qwl4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/agentx~all-shopping-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-agentx-all-shopping-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/agentx~all-shopping-scraper/runs": {
            "post": {
                "operationId": "runs-sync-agentx-all-shopping-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/agentx~all-shopping-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-agentx-all-shopping-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keyword",
                    "country",
                    "max_results"
                ],
                "properties": {
                    "keyword": {
                        "title": "🔍 Keyword",
                        "type": "string",
                        "description": "Product keyword, model, brand, or query to search for"
                    },
                    "country": {
                        "title": "🌍 Country",
                        "enum": [
                            "Australia",
                            "Austria",
                            "Belgium",
                            "Brazil",
                            "Canada",
                            "Chile",
                            "Egypt",
                            "France",
                            "Germany",
                            "Hong Kong",
                            "Hungary",
                            "India",
                            "Indonesia",
                            "Ireland",
                            "Italy",
                            "Japan",
                            "Luxembourg",
                            "Malaysia",
                            "Mexico",
                            "Netherlands",
                            "New Zealand",
                            "Poland",
                            "Portugal",
                            "Saudi Arabia",
                            "Singapore",
                            "Spain",
                            "South Korea",
                            "Sweden",
                            "Switzerland",
                            "Turkey",
                            "United Arab Emirates",
                            "United Kingdom",
                            "United States"
                        ],
                        "type": "string",
                        "description": "Country used to route ecommerce platforms and country sites"
                    },
                    "max_results": {
                        "title": "📊 Max Results",
                        "minimum": 10,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of product records to return per platform"
                    },
                    "platforms": {
                        "title": "🛒 Platforms",
                        "type": "array",
                        "description": "Optional list of product platforms to search. Leave empty to use all supported platforms for the selected country.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Amazon",
                                "AJIO",
                                "AliExpress",
                                "eBay",
                                "Target",
                                "Flipkart",
                                "OTTO",
                                "Argos",
                                "John Lewis",
                                "Bol.com",
                                "Hepsiburada",
                                "Rakuten",
                                "Kakaku",
                                "Big W",
                                "Blibli",
                                "JB Hi-Fi",
                                "Canadian Tire",
                                "MediaMarkt",
                                "Walmart",
                                "ASOS",
                                "Myntra",
                                "Nykaa",
                                "TradeIndia"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
