# Global Sources Scraper & API: Products, MOQ, Verified Suppliers (`rel8ble/global-sources-scraper`) Actor

Use this to find Global Sources products and verified suppliers by keyword. Input: search terms, optional price, MOQ, location, manufacturer and certificate filters. One result = one product: title, price range, MOQ, lead time, FOB port, supplier, ranking, verified badges, URL. $1.50 per 1,000.

- **URL**: https://apify.com/rel8ble/global-sources-scraper.md
- **Developed by:** [Giovanni Rich](https://apify.com/rel8ble) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 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.

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

## 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 Sources Scraper & API: Products, MOQ, Verified Suppliers

This **Global Sources scraper** turns GlobalSources.com product search results into clean JSON, CSV or Excel: enter a keyword and get every product's FOB price range, MOQ, lead time, FOB port, category, supplier name, location, star ranking (P1-P6), years on Global Sources, verified supplier / verified manufacturer badges and trade show history.
Use it as a **Global Sources product scraper** for sourcing and price research, a **Global Sources supplier scraper** for verified-manufacturer lead lists, or an unofficial **Global Sources API** you call from your own code, Make, Zapier or n8n.

It reads the same JSON Global Sources' own search page loads, over plain HTTP, with **no headless browser and no login**. 80 products per request; 1,000 products take well under a minute.

### How to use

1. Enter one or more keywords in **Search terms** (e.g. `led light`, `yoga mat`), or paste a Global Sources search URL (its filters are kept).
2. Optionally set filters: price, MOQ, supplier location, verified manufacturers only, supplier ranking, years in business, product or company certificates, FOB port, OEM service, trade show exhibitors.
3. Click **Start** and download the results as JSON, CSV or Excel from the **Output** tab, or fetch them through the Apify API.

### What you get

- **Product**: title, product URL, main image and gallery, video, model number, category with the full category path, first-listed month, sponsored flag.
- **Price & MOQ**: FOB price from / to in USD, the price text, price type (by order quantity or range), minimum order quantity and its unit, production lead time, FOB port.
- **Supplier**: company name, Global Sources supplier ID and homepage, country / region, **star ranking P1-P6**, **years on Global Sources**, business types (manufacturer, trading company, exporter, ...), **verified supplier** and **verified manufacturer** badges, one-line highlight, 360° factory tour flag, trade show history and booth.
- **Filters applied before you pay**: everything you filter out is skipped and never charged.

### Sample output

Real rows from a test run (`led light`), a few of the 40+ fields:

| title | FOB price | MOQ | supplier | ranking | years | verified mfr |
|---|---|---|---|---|---|---|
| Multi function LED Work Light / Rotatable, Ma... | $7.30 - 7.50 | 100 Boxes | Market Union Co. Ltd | P6 | 4 | no |
| Reversing work light 12w trucks flood round L... | $5.68 - 5.80 | 50 Pieces | M\&F Industries Limited | P4 | 7 | no |
| Patio Holiday Garden Wedding Decor LED Cafe S... | $2.43 - 2.87 | 3000 Pieces | Jinjiang Naike EcoTechnology Co... | P6 | 10 | yes |
| Led Light Street, IP65 DLC ETL 100w 200w 130l... | $80.90 - 89.90 | 1 Pieces | Shenzhen JMK Technology Co., Ltd. | P5 | 4 | yes |

### Use cases

- Sourcing: shortlist verified factories with a low MOQ for a product in minutes
- Price research: compare FOB prices across hundreds of suppliers
- Supplier lead lists by country, ranking, certificate or business type
- Trade show prep: find exhibitors in your category
- Monitoring: schedule runs and track new products and suppliers over time
- Alibaba alternative: cross-check the same product on a second B2B marketplace (pair it with our Alibaba scraper)

### Pricing

**Pay per result: $1.50 per 1,000 results** (one result = one product saved to the dataset).

- 1,000 results = $1.50
- 10,000 results = $15.00

No start fee. Products removed by your filters, duplicates and failed requests are never charged. Platform usage is tiny because no browser runs. If you set a maximum cost per run, the scraper stops cleanly when it reaches it.

Other Global Sources scrapers on the Store charge $5.00-$10.00 per 1,000 results.

### Input

| Field | Default | Description |
|---|---|---|
| `searchTerms` | `led light` | Keywords or Global Sources search URLs, one per line |
| `maxResultsPerSearch` | 100 | Products per search. 0 = everything (up to 20,000) |
| `minPrice` / `maxPrice` | - | FOB unit price filter in USD |
| `maxMoq` | - | Only products with an MOQ at or below this number |
| `supplierLocations` | - | `China`, `Vietnam`, `India`, `Taiwan`, `Hong Kong SAR`, `South Korea`, `Thailand`, `United States`, ... |
| `verifiedManufacturerOnly` | false | Only suppliers verified as manufacturers |
| `businessTypes` | - | `Manufacturer`, `Exporter`, `Wholesaler`, `Agent`, `Importer`, `Online Seller`, `Retailer`, `Consultant` |
| `minSupplierLevel` | - | Star ranking 1-6 (6 = P6, the top tier) |
| `minYearsInBusiness` | - | e.g. 15 (Global Sources buckets: 30+, 25-29, 15-24, 5-14, under 5) |
| `productCertifications` | - | e.g. `CE`, `ROHS`, `FCC` |
| `companyCertifications` | - | e.g. `ISO 9001:2015`, `BSCI` |
| `fobPorts` | - | e.g. `Shenzhen`, `Ningbo` |
| `oemOnly` | false | Only suppliers offering OEM / private label |
| `tradeShowExhibitorsOnly` | false | Only Global Sources trade show exhibitors |
| `includeAds` | true | Keep sponsored listings (flagged `isAd`) |

### Input example

```json
{
    "searchTerms": ["yoga mat", "bluetooth speaker"],
    "maxResultsPerSearch": 200,
    "verifiedManufacturerOnly": true,
    "maxMoq": 1000,
    "maxPrice": 20
}
```

### Output example

One dataset item per product. This one is from a real run for "led light":

```json
{
    "searchTerm": "led light",
    "position": 1,
    "productId": "1230765239",
    "title": "Multi function LED Work Light | Rotatable, Magnetic Base & Rechargeable Spotlight with Multiple Light",
    "url": "https://www.globalsources.com/Work-light/LED-work-light-1230765239p.htm",
    "image": "https://p.globalsources.com/IMAGES/PDT/S1230765239/LED-work-light.jpg?ver=6115387261",
    "hasVideo": true,
    "modelNumber": "1114",
    "priceMin": 7.3,
    "priceMax": 7.5,
    "priceText": "US $7.30 - 7.50",
    "currency": "USD",
    "priceType": "PRICE_BY_ORDER_QUANTITY",
    "moq": 100,
    "moqUnit": "Boxes",
    "leadTimeDays": 7,
    "fobPort": "Ningbo",
    "category": "Work lights",
    "categoryPath": ["Hardware", "Lighting & Electricals", "Industrial Lighting", "Work lights"],
    "firstListed": "11/24",
    "isAd": true,
    "supplierName": "Market Union Co. Ltd",
    "supplierId": "2008856541126",
    "supplierUrl": "https://market-union.manufacturer.globalsources.com/",
    "supplierLocation": "China",
    "supplierYearsOnGlobalSources": 4,
    "supplierLevel": 6,
    "supplierBusinessTypes": ["Buying Office", "Trading Company", "Agent"],
    "verifiedSupplier": true,
    "verifiedManufacturer": false,
    "supplierHighlight": "One of China's top 500 import and export enterprises",
    "supplierHasVirtualTour": true,
    "tradeShows": "Exhibited at 2 GS shows",
    "searchPage": 1,
    "scrapedAt": "2026-10-24T05:13:02.581Z"
}
```

The dataset has three views: **Overview**, **Suppliers** (all trust signals) and **Prices & MOQ**. The `RUN_SUMMARY` record shows, per search, how many products and suppliers Global Sources reports, how many were filtered out, and why each search stopped.

### Integrations

- **Make, Zapier and n8n**: run the actor and pass the products on to any app.
- **Google Sheets**: export the dataset straight to a spreadsheet.
- **Apify API**: start runs and download results over REST, or with the JavaScript and Python clients.
- **Webhooks**: get notified when a run finishes.
- **MCP for AI agents**: the Apify MCP server (https://mcp.apify.com) lets Claude, ChatGPT, Cursor and other agents call this Global Sources scraper as a tool.

### Limits

- **Search results only.** Full specifications, price tiers per quantity and the supplier's contact person are on the product page, which this version does not open (it keeps runs fast and cheap).
- **Certificates in rows are sparse.** Search cards rarely list product or company certificates, so `productCertifications` / `supplierCompanyCertifications` are usually empty; the certificate **filters** work fully because Global Sources applies them itself.
- **Prices are FOB list prices** from the search card; some suppliers hide prices (about 5% in tests, `priceMin: null`).
- `minYearsInBusiness` follows Global Sources' buckets, so `20` also includes suppliers with 15-19 years.
- Lead time and FOB port are filled only when the supplier gives them (about 10% of cards).

### FAQ

**Does it need a browser, cookies or a Global Sources account?**
No. Plain HTTPS requests to the JSON endpoint Global Sources' own search page uses. No login, no personal data.

**Which proxy should I use?**
None: leave the default. The actor connects directly and retries any blocked request through Apify Proxy automatically (datacenter, then residential).

**What do supplier level and verified manufacturer mean?**
`supplierLevel` is Global Sources' star ranking for paying suppliers (P6 = top tier). `verifiedManufacturer: true` means Global Sources verified the company as a factory, not a trader.

**Why did a search return fewer results than I asked for?**
Global Sources ran out of matching products, or your filters removed them. `RUN_SUMMARY` shows the reported totals and the stop reason per search.

**Can I search suppliers in several countries at once?**
Yes: `supplierLocations: ["Vietnam", "India", "Thailand"]` is one search.

# Actor input Schema

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

Provide at least one. Product keywords to search on GlobalSources.com, e.g. \["led light", "yoga mat"], or Global Sources search URLs (https://www.globalsources.com/searchList/products?keyWord=...); filters in a pasted URL are kept. One search per line. Default \["led light"] (demo only).

## `maxResultsPerSearch` (type: `integer`):

Optional. Maximum products saved per search term, integer >= 0. Default 100; 0 = everything (up to 20,000 per search). You pay per product, so use 10-20 for a quick answer.

## `minPrice` (type: `integer`):

Optional. Minimum FOB unit price in US dollars, integer >= 0. Products whose highest price is below it are skipped (and not charged). Omit for no minimum.

## `maxPrice` (type: `integer`):

Optional. Maximum FOB unit price in US dollars, integer >= 0. Products whose lowest price is above it, or with no price shown, are skipped (and not charged). Omit for no maximum.

## `maxMoq` (type: `integer`):

Optional. Only products whose minimum order quantity is at or below this number, integer >= 1, e.g. 100 for low-MOQ sourcing. Applied by Global Sources itself. Omit for no limit.

## `productCertifications` (type: `array`):

Optional. Only products with one of these verified certificates, exactly as Global Sources names them, e.g. \["CE", "ROHS", "FCC", "UL"]. Omit for any.

## `fobPorts` (type: `array`):

Optional. Only products shipped FOB from one of these ports, e.g. \["Shenzhen", "Ningbo", "Xiamen"]. Omit for any.

## `oemOnly` (type: `boolean`):

Optional boolean. true = only suppliers offering OEM / private-label service. Default false.

## `supplierLocations` (type: `array`):

Optional. Supplier country or region names as Global Sources writes them, e.g. \["China", "Vietnam", "India", "Taiwan", "Hong Kong SAR", "South Korea", "Thailand", "United States"]. Omit for all.

## `businessTypes` (type: `array`):

Optional. Only suppliers verified as one of these types: "Manufacturer", "Exporter", "Wholesaler", "Agent", "Importer", "Online Seller", "Retailer", "Consultant". Omit for all.

## `verifiedManufacturerOnly` (type: `boolean`):

Optional boolean. true = only products from suppliers verified as manufacturers (factories, not traders). Default false.

## `minSupplierLevel` (type: `integer`):

Optional. Global Sources supplier star ranking P1-P6 (6 = highest, longest-standing paying suppliers). E.g. 5 keeps P5 and P6 only. Omit for all.

## `minYearsInBusiness` (type: `integer`):

Optional. Minimum years the supplier has been in business, integer, e.g. 15. Global Sources groups years into 30+, 25-29, 15-24, 5-14 and under 5, so the bucket containing your number is included. Omit for all.

## `companyCertifications` (type: `array`):

Optional. Only suppliers holding one of these verified company certificates, e.g. \["ISO 9001:2015", "ISO 14001", "BSCI"]. Omit for any.

## `tradeShowExhibitorsOnly` (type: `boolean`):

Optional boolean. true = only suppliers that exhibit at Global Sources trade shows (met in person, booth known). Default false.

## `includeAds` (type: `boolean`):

Optional boolean. true = keep sponsored listings (flagged isAd: true). false = organic results only. Default true.

## `maxConcurrency` (type: `integer`):

Optional, advanced. Parallel requests, integer 1-20. Default 5. Leave unset.

## `maxRequestRetries` (type: `integer`):

Optional, advanced. Retries per failed or blocked request, integer 0-20; each retry uses a new proxy session. Default 6.

## `proxyConfiguration` (type: `object`):

Optional, advanced. Leave as is. Default {"useApifyProxy": false} = automatic: direct connection first, and only requests that get blocked are retried through Apify Proxy (datacenter, then residential). Set your own Apify Proxy groups or proxy URLs to force them for every request.

## Actor input object example

```json
{
  "searchTerms": [
    "led light",
    "yoga mat"
  ],
  "maxResultsPerSearch": 20,
  "oemOnly": false,
  "verifiedManufacturerOnly": false,
  "tradeShowExhibitorsOnly": false,
  "includeAds": true,
  "maxConcurrency": 5,
  "maxRequestRetries": 6,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All products found, with price, MOQ, lead time and supplier trust signals.

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

Per-search counts, matches reported by Global Sources and stop reasons.

# 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 = {
    "searchTerms": [
        "led light",
        "yoga mat"
    ],
    "maxResultsPerSearch": 20,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rel8ble/global-sources-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 = {
    "searchTerms": [
        "led light",
        "yoga mat",
    ],
    "maxResultsPerSearch": 20,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("rel8ble/global-sources-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "led light",
    "yoga mat"
  ],
  "maxResultsPerSearch": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call rel8ble/global-sources-scraper --silent --output-dataset

```

## MCP server setup

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

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

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/4jSg3iGesF0XjD1hH/builds/O5H6FjIn03hMNfQiZ/openapi.json
