# Global Winning Product Finder - Dropshipping (Laya & JEV AI) (`eternallabs/global-product-finder`) Actor

Cross-border product research & sourcing intelligence. Find products from China/AliExpress and analyze target market prices, price spread, demand, competition, and trends with Laya & JEV AI.

- **URL**: https://apify.com/eternallabs/global-product-finder.md
- **Developed by:** [Jona](https://apify.com/eternallabs) (community)
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

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

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

## How to integrate an Actor?

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

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

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

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

# README

## Global Product Finder — Dropshipping & Product Research

> **Cross-border product discovery and arbitrage research from overseas supplier hubs to destination retail markets.**

Find products from China and other supplier markets that may have commercial potential in your target ecommerce destination market. Designed for **dropshipping products**, **product research**, **winning products**, **AliExpress products**, **China products**, **product sourcing**, **ecommerce**, and **import products**.

***

### What Makes This Different?

Most dropshipping tools are merely raw AliExpress scrapers that dump order numbers. **Global Product Finder** is an intelligent cross-border arbitrage and decision system powered by **Laya & JEV System-1 Decision Intelligence**.

It models the entire lifecycle of an ecommerce product:

```text
  [ OVERSEAS SUPPLIER ] ──▶ [ DESTINATION RETAIL ] ──▶ [ PRICE SPREAD ] ──▶ [ COMPETITION & TRENDS ] ──▶ [ DECISION INTELLIGENCE ]
    Sourcing Price: $8.50      Median Retail: $39.99     Multiple: 4.7x         Demand: High, Comp: Med      Tier: INVESTIGATE (87/100)
```

#### Core Question Answered:

> **"What products can I source from an overseas manufacturing hub (China, India, Vietnam) and profitably sell in my target retail market (USA, UK, Germany, Canada, UAE)?"**

***

### Key Features

- **Cross-Border Market Arbitrage**: Compares supplier cost against observed target market retail prices to compute real gross price multiples.
- **Supplier Verification**: Filters by verified order counts (10,000+), high ratings (4.5+), and delivery timelines.
- **Competition Density Analysis**: Assesses destination marketplace density (`LOW`, `MEDIUM`, `HIGH`) to identify market gaps.
- **Trend Keyword Engine**: Generates high-intent search queries and detects emerging viral momentum.
- **Optional Meta Ads Validation**: Checks if destination brands are already spending ad dollars promoting this product.
- **Six Opportunity Modes**: Rank candidate products by `BALANCED`, `BEST_MARGIN`, `LOW_COMPETITION`, `TRENDING`, `EMERGING`, or `HIGH_DEMAND`.
- **Honest Telemetry**: Does not claim "guaranteed net profit". Clearly factors in operational risks (shipping, ad costs, returns, duties).

***

### Opportunity Ranking Modes

1. **`BALANCED`** (Default): Holistic balance across demand (25%), price spread (20%), competition (15%), supplier strength (15%), trends (10%), and ad signals (10%).
2. **`BEST_MARGIN`**: Prioritizes products with the highest price multiples (3x–10x+) between supplier cost and target retail.
3. **`LOW_COMPETITION`**: Prioritizes untapped product niches with low marketplace saturation.
4. **`TRENDING`**: Prioritizes products with rapidly accelerating search query momentum.
5. **`EMERGING`**: Discovers rising viral products before they reach peak advertiser saturation.
6. **`HIGH_DEMAND`**: Focuses on battle-tested, high-volume products with tens of thousands of confirmed orders.

***

### Example Input (JSON)

```json
{
  "sourceCountry": "CN",
  "targetCountry": "US",
  "categories": [
    "pet products",
    "home gadgets",
    "kitchen tools",
    "car accessories"
  ],
  "opportunityMode": "BALANCED",
  "maxProducts": 25,
  "minSupplierRating": 4.5,
  "minSupplierOrders": 1000,
  "maxSupplierPrice": 25.0,
  "minPriceMultiple": 2.5,
  "includeTargetMarketResearch": true,
  "includeTrendAnalysis": true,
  "includeMetaAdSignals": true,
  "includeAIAnalysis": true,
  "decisionEngine": "laya"
}
```

***

### Example Output (JSON)

```json
{
  "product_name": "Portable USB Rechargeable Blender",
  "original_supplier_title": "Mini USB Portable Blender 6 Blades Fruit Juicer Extractor Shake Smoothie Cup",
  "source_country": "CN",
  "target_country": "US",
  "supplier": {
    "price": 8.50,
    "currency": "USD",
    "rating": 4.7,
    "orders": 18900,
    "review_count": 4200,
    "seller_name": "Guangzhou Electronics Direct",
    "shipping_price": 2.20,
    "estimated_delivery_days": 12
  },
  "target_market": {
    "lowest_price": 29.99,
    "median_price": 39.99,
    "highest_price": 54.99,
    "currency": "USD",
    "competition": "HIGH"
  },
  "price_spread": {
    "multiple": 4.71,
    "absolute_difference": 31.49
  },
  "trend": {
    "status": "RISING",
    "keywords": [
      "portable blender",
      "best portable blender",
      "portable blender review"
    ],
    "emerging_keywords": [
      "buy portable blender online",
      "portable blender tiktok viral"
    ]
  },
  "meta_ads": {
    "advertiser_count": 8,
    "active_ad_count": 22,
    "signal_score": 85
  },
  "scores": {
    "supplier": 94,
    "demand": 85,
    "price_spread": 95,
    "competition": 45,
    "trend": 88,
    "differentiation": 85,
    "overall": 86
  },
  "decision": "INVESTIGATE",
  "positive_signals": [
    "Strong observed price spread: 4.71x multiple ($8.50 sourcing vs $39.99 median retail)",
    "High supplier order volume (18,900 verified orders)",
    "Top-tier supplier satisfaction score (4.7/5.0)",
    "Search interest telemetry indicates rising commercial momentum",
    "Active Meta advertising campaigns observed in US (8 brands)"
  ],
  "risks": [
    "Shipping, duties, payment processing, returns, and ad costs may substantially reduce net profit",
    "Target market has dense established retail competition"
  ],
  "why_this_product": "INVESTIGATE: Sourcing from CN ($8.50) into US (median retail $39.99) offers a 4.71x price multiple. Supplier has 18,900 orders (4.7 rating). Competition is HIGH and search trend momentum is RISING.",
  "shipping_signal": "MEDIUM",
  "data_quality": "HIGH"
}
```

***

### How to Call via API

#### Python (ApifyClient)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "sourceCountry": "CN",
    "targetCountry": "US",
    "categories": ["pet products", "kitchen tools"],
    "opportunityMode": "BEST_MARGIN",
    "minPriceMultiple": 3.0
}

run = client.actor("your-username/global-product-finder").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"[{item['decision']}] {item['product_name']} - Sourcing: ${item['supplier']['price']} -> Target: ${item['target_market']['median_price']} ({item['price_spread']['multiple']}x)")
```

#### JavaScript / Node.js

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const input = {
    sourceCountry: 'CN',
    targetCountry: 'US',
    categories: ['pet products', 'kitchen tools'],
    opportunityMode: 'BEST_MARGIN'
};

const run = await client.actor('your-username/global-product-finder').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Apify CLI

```bash
apify call your-username/global-product-finder --input='{"sourceCountry":"CN","targetCountry":"US","categories":["pet products"]}'
```

***

### Monetization Events

- `product-analyzed`: Charged per overseas supplier product evaluated.
- `product-qualified`: Charged when a candidate product achieves `INVESTIGATE` or `WATCH` status.
- `product-opportunity`: Charged per full cross-border intelligence profile delivered.

# Actor input Schema

## `sourceCountry` (type: `string`):

Origin sourcing country code (e.g. CN, IN, VN).

## `targetCountry` (type: `string`):

Target retail market code (e.g. US, GB, CA, AU, DE, FR, AE).

## `categories` (type: `array`):

Niches to scan for winning products (e.g. 'pet products', 'home gadgets', 'kitchen tools', 'beauty', 'fitness').

## `opportunityMode` (type: `string`):

Ranking focus for opportunity scoring.

## `maxProducts` (type: `integer`):

Maximum number of candidate products to analyze.

## `minSupplierRating` (type: `number`):

Filter suppliers by minimum customer rating (0.0 to 5.0).

## `minSupplierOrders` (type: `integer`):

Filter products by minimum confirmed order count.

## `maxSupplierPrice` (type: `number`):

Cap the supplier unit cost (in USD).

## `minPriceMultiple` (type: `number`):

Target retail price must be at least this multiple of sourcing price (e.g. 2.0x, 3.0x).

## `includeTargetMarketResearch` (type: `boolean`):

Collect observed destination market retail prices (Google Shopping / Marketplace data).

## `includeTrendAnalysis` (type: `boolean`):

Extract search keyword clusters and trend momentum.

## `includeMetaAdSignals` (type: `boolean`):

Check if product is actively promoted on Meta Ad Library in destination country.

## `includeAIAnalysis` (type: `boolean`):

Generate differentiation scores and structured 'Why This Product' rationales.

## `decisionEngine` (type: `string`):

System-1 decision engine: 'laya' (default open-source), 'jev', or 'rules'.

## Actor input object example

```json
{
  "sourceCountry": "CN",
  "targetCountry": "US",
  "categories": [
    "pet products",
    "home gadgets",
    "kitchen tools",
    "car accessories"
  ],
  "opportunityMode": "BALANCED",
  "maxProducts": 30,
  "minSupplierRating": 4.2,
  "minSupplierOrders": 100,
  "maxSupplierPrice": 35,
  "minPriceMultiple": 2,
  "includeTargetMarketResearch": true,
  "includeTrendAnalysis": true,
  "includeMetaAdSignals": true,
  "includeAIAnalysis": true,
  "decisionEngine": "laya"
}
```

# Actor output Schema

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

Full dataset of qualified overseas products, supplier costs, target market prices, and price multiples.

## `csv` (type: `string`):

Export CSV spreadsheet with sourcing costs, target prices, multiples, and opportunity decisions.

## `summary` (type: `string`):

Run metrics detailing scanned products, investigate count, and top ranked product.

# 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 = {
    "targetCountry": "US",
    "categories": [
        "pet products",
        "home gadgets",
        "kitchen tools",
        "car accessories"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("eternallabs/global-product-finder").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 = {
    "targetCountry": "US",
    "categories": [
        "pet products",
        "home gadgets",
        "kitchen tools",
        "car accessories",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("eternallabs/global-product-finder").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "targetCountry": "US",
  "categories": [
    "pet products",
    "home gadgets",
    "kitchen tools",
    "car accessories"
  ]
}' |
apify call eternallabs/global-product-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,eternallabs/global-product-finder"
        }
    }
}
```

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

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/mrd9aNzNoGTnIdLMz/builds/gthFtcTLAHBZUETIj/openapi.json
