Global Sources Scraper - B2B Products & Suppliers avatar

Global Sources Scraper - B2B Products & Suppliers

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Global Sources Scraper - B2B Products & Suppliers

Global Sources Scraper - B2B Products & Suppliers

Extract Global Sources product listings, supplier profiles and trade-show exhibitors, including available prices and public contacts. Export structured rows and pay per delivered row plus a start fee.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

13

Total users

6

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Global Sources Scraper

Extract Global Sources products, suppliers and trade-show exhibitors as structured rows for sourcing research and export.

  • Product titles, prices, minimum order quantities and image URLs.
  • Supplier profiles and publicly available contact information.
  • Keyword, category, product, supplier and exhibitor inputs.
  • JSON, CSV and Excel exports, plus API and AI-agent access.
  • Pay for delivered rows: $3.00 per 1,000 rows on the Free plan, plus a small start fee.

What does Global Sources Scraper do?

Global Sources Scraper collects public product and supplier information from globalsources.com and its manufacturer subdomains. Use it to compare sourcing options, build supplier shortlists or track catalog changes. This is an unofficial tool, not affiliated with Global Sources.

  • Product search: enter query or searchQueries for product rows.
  • Category: enter categoryUrl or categoryId for category products.
  • Product: enter productUrls, productIds or product links in detailUrls.
  • Supplier: enter supplierUrls, supplier links in detailUrls, or supplierShortName with homepageId.
  • Exhibitors: enter exhibitorRegion for supplier rows with available directory details.

Each row represents one product or supplier. enrichDetails defaults to true and adds available details to existing rows, not separately billed contact rows. Supplier mode requests profile and contact information even when this setting is false.

What data can you extract from Global Sources?

Fields depend on what the source publishes. Product rows and supplier rows use different identifiers; homepageId is not interchangeable with supplierId.

Product rows

FieldDescriptionExample
rowTypeEntity represented by the row.product
idStable row identifier.1226081829
productIdProduct number.1226081829
titleProduct title.Hydraulic cylinder
urlProduct page URL.https://www.globalsources.com/Hydraulic-cylinder/Single-Acting-Hydraulic-cylinders-1226081829p.htm
supplierNameSupplier name when listed.Example Manufacturing Ltd
supplierShortNameSupplier's short name.easy-buy
priceTextDisplayed price, including its unit when present.US$ 35-60 / Piece
priceLowLower price bound as text.35
priceHighUpper price bound as text.60
priceCurrencyCurrency code when available.USD
minOrderQuantityPublished minimum order quantity.100 Pieces
imageUrlsProduct image URLs, not image downloads.[]
descriptionProduct description.Single-acting hydraulic cylinder
categoryAvailable category path.Industrial Supplies
modelNumberPublished model reference.MODEL-EXAMPLE
searchQueryKeyword associated with a search row.hydraulic cylinder

Supplier and exhibitor rows

FieldDescriptionExample
rowTypeExhibitors also use the supplier row type.supplier
idStable supplier row identifier.6008855290824
nameCompany name.Example Manufacturing Ltd
homepageIdSupplier homepage number.6008855290824
supplierIdSeparate supplier identifier.2008855290824
urlSupplier or directory URL.https://easy-buy.manufacturer.globalsources.com/homepage_6008855290824.htm
boothExhibitor booth, when published.1A01
mainProductsSupplier's main product keywords.["Hydraulic cylinders"]
phonesAvailable public phone entries.[{"value":"+1 555 0100","type":"landline"}]
emailsAvailable public email entries.[{"value":"name@example.com","type":"work"}]
addressPublished address components.{"country":"China"}
personPublished contact name and role.{"name":"Jane Doe","role":"Manager"}
web.websiteSupplier's own website, not its Global Sources page.https://example.com
leadRevealContact availability; may be visible, gated, absent or null.visible
leadAbsencesReasons for missing contact fields when established.{}
companyProfileUrlCompany profile URL, when available.https://easy-buy.manufacturer.globalsources.com/company-profile_6008855290824.htm

Product rows can also include these contact fields after enrichment. Attribute and contact lists are capped at 50 values; a corresponding total count is retained when present. An empty contact field does not by itself prove that the supplier publishes no contact information.

How to scrape Global Sources

  1. Open Global Sources Scraper in Apify Console.
  2. Fill one target field and leave mode on auto.
  3. Set maxResults to 3 for a small first run.
  4. Click Start and wait for completion.
  5. Open the dataset and download your rows, or read them through the API.

Empty input {} starts a product search for stainless steel pipe, using the form's sample input and a maximum of 3 rows. This is a billed example run, not a free preview. Filling one target field selects the matching mode automatically.

Use a specific sourcing keyword in query. For several keywords, fill searchQueries; a non-empty list replaces query. Each keyword receives its own row allowance.

Category

Supply a category link or numeric category ID. Category results need not match keyword-search results. Some category pages contain only a small selection of products.

Product

Supply product links or IDs. A product input describes one product, so raising maxResults does not create more products from that page.

Supplier

Supply a supplier homepage link. Alternatively, fill both supplierShortName and homepageId. Explicit supplier URLs take precedence over that pair. This mode returns company profiles, not the supplier's whole product catalog.

Exhibitors

Use exhibitorRegion, for example HK. Rows describe suppliers in the directory, with booth and company details where available. Directory membership and contact completeness can change.

What to fill in

FieldWhat to enterDefault
modeauto, product_search, category, product, supplier or exhibitors.auto
queryOne product keyword.Empty; example prefill: stainless steel pipe
searchQueriesA list of keywords; replaces query.Empty
categoryUrlA Global Sources category URL or relative category path.Empty
categoryIdNumeric category ID.Empty
productUrlsProduct page URLs.Empty
productIdsProduct IDs.Empty
supplierUrlsSupplier homepage or profile URLs.Empty
detailUrlsProduct links, or supplier links for supplier mode.Empty
supplierShortNameSupplier subdomain; pair with homepageId.Empty
homepageIdHomepage number; pair with supplierShortName.Empty
exhibitorRegionDirectory region code, such as HK.Empty
maxResultsRows per input, from 1 to 200.70; example prefill: 3
maxPagesListing page limit, from 1 to 50.5
pageStarting listing page, from 1 to 100.1
enrichDetailsAdd available product and supplier details.true
langSite language setting; use enus for English.enus
surfacewww or mobile; prefer www.www
fieldsOptional list of output field names.Empty; no field selection

Product search:

{
"query": "usb hub",
"maxResults": 3
}

Category:

{
"categoryId": "48659",
"maxResults": 3
}

Product:

{
"productUrls": ["https://www.globalsources.com/Hydraulic-cylinder/Single-Acting-Hydraulic-cylinders-1226081829p.htm"],
"maxResults": 1
}

Supplier:

{
"supplierUrls": ["https://easy-buy.manufacturer.globalsources.com/homepage_6008855290824.htm"],
"maxResults": 1
}

Exhibitors:

{
"exhibitorRegion": "HK",
"maxResults": 3
}

maxItems and limit are accepted aliases for maxResults. Unknown fields do not fail the run: close misspellings can be corrected, while other unknown fields are ignored with a note. Invalid optional filters can also be ignored.

Invalid targets stop the run before rows are collected or charged. Errors start with INVALID_INPUT: and identify the field and the fix; resolver errors use INVALID_INPUT: <field> — <how to fix>. The start fee can still apply. URLs must belong to globalsources.com or one of its subdomains.

Each run writes its input interpretation to INPUT_REPORT in the default key-value store, including inferred, corrected and ignored fields. In automatic mode, competing targets follow this priority: URLs, IDs, keywords, then exhibitor region. Use one target family per run to avoid unintended choices.

Output example

This illustrative supplier row uses placeholders for contact details; it is not a promise that every supplier publishes them.

{
"rowType": "supplier",
"id": "6008855290824",
"name": "Example Manufacturing Ltd",
"homepageId": "6008855290824",
"supplierId": "2008855290824",
"url": "https://easy-buy.manufacturer.globalsources.com/homepage_6008855290824.htm",
"phones": [{"value": "+1 555 0100", "type": "landline"}],
"emails": [{"value": "name@example.com", "type": "work"}],
"person": {"name": "Jane Doe", "role": "Manager"},
"web": {"website": "https://example.com", "socials": []},
"leadReveal": "visible"
}

Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. RUN_SUMMARY describes the outcome; failed runs can also provide ERROR_SUMMARY.

Why use this Global Sources scraper?

  • Pay per delivered row. Product and supplier rows have the same row price.
  • Keep partial output. Rows already written to the dataset remain available after a stop or timeout. When incomplete collection returns usable rows, RUN_SUMMARY.status can be PARTIAL; this does not guarantee recovery of rows not yet delivered.
  • Understand missing data. Missing values are not invented; unavailable contacts stay empty.
  • Use several inputs. Submit lists of keywords, product links or supplier links in one run.
  • Avoid setup. You do not need to set up proxies or provide a Global Sources account.

How much does it cost to scrape Global Sources?

The Actor uses pay-per-event pricing. The start event costs $0.005 per GB of allocated memory, with at least one event. At the default 1024 MB, the start fee is $0.005. Platform usage is included in these prices.

Apify planStart fee at 1024 MBPrice per rowPrice per 1,000 rows
Free$0.005$0.003$3.00
Starter$0.005$0.003$3.00
Scale$0.005$0.0026$2.60
Business$0.005$0.0022$2.20
Platinum$0.005$0.002$2.00
Diamond$0.005$0.0016$1.60
  • maxResults applies to each input, defaults to 70 and accepts up to 200. Larger allowances are collected in parts of at most 70 when continuation is available. All row types share the allowance.
  • Free Apify plan runs are capped at 200 rows across the run and 10 runs of this Actor. These are developer-set limits.
  • The whole run stops at your Maximum cost per run setting, called maxTotalChargeUsd in the API.

Example: 3 keywords delivering 5 rows each produce 15 rows. On the Free plan, at 1024 MB, the cost is 15 × $0.003 + $0.005 = $0.050. Fewer delivered rows mean lower row charges, not removal of the start fee.

What happens when the run timeout is too short

Some requests need longer than the timeout you chose. The Actor supports automatic pause and resume. When a pause is accepted, the run temporarily shows ABORTED with the message: “Queued on the collection backend; this run will resume automatically when results are ready (about N s).”

When results are ready, the same run resumes, writes remaining rows to the same dataset and finishes as SUCCEEDED if delivery succeeds. A resumed delivery can report “Resumed: delivering N rows.” Already delivered rows are skipped, so they are not delivered or charged twice. This automatic path needs no action from you; not every aborted or timed-out run represents this path.

  • Automatic pauses are limited to at most 3 per run. Keep the default timeout of 3600 seconds to reduce interruptions.
  • Synchronous API endpoints (run-sync, run-sync-get-dataset-items) wait at most 300 seconds and can return an empty dataset while a run is paused. For longer requests, start asynchronously and read the dataset after SUCCEEDED, or use a succeeded-event webhook.

Use with AI agents and the API

Apify MCP server

Add the Actor to a remote MCP client such as Claude, ChatGPT, Cursor or VS Code:

https://mcp.apify.com?tools=lentic_clockss/globalsources-scraper

Sign in with Apify through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; the agent reads rows with get-dataset-items.

Clients without remote MCP support can use npx @apify/actors-mcp-server --tools lentic_clockss/globalsources-scraper with APIFY_TOKEN configured.

Example prompt: “Find 3 Global Sources products for usb hub and return their titles, prices and supplier names.”

Apify API

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lentic_clockss/globalsources-scraper").call(
run_input={"query": "usb hub", "maxResults": 3}
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lentic_clockss/globalsources-scraper')
.call({ query: 'usb hub', maxResults: 3 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

For asynchronous HTTP calls, send the input as JSON to POST https://api.apify.com/v2/acts/lentic_clockss~globalsources-scraper/runs, with Authorization: Bearer <YOUR_APIFY_TOKEN>. After completion, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.

Integrations

Use the Actor's Integrations tab to connect Google Sheets, Make, Zapier, n8n, Slack, Airtable or webhooks. Apify Schedules can repeat saved inputs.

FAQ

This Actor collects public data. You are responsible for checking the site's terms and applicable data-protection law. Public availability does not remove those obligations; processing personal data requires a lawful basis.

Why did my run end as ABORTED?

Check the status message. An automatic pause with the queued/resume message is temporary. Manual stops and other aborts are different; inspect the run log and available summary before starting another run.

How many results can I get?

Set maxResults from 1 to 200 per input. Actual delivery also depends on available rows, page limits, time and your cost cap. One supplier homepage normally yields one supplier row, not 200.

Why are some fields empty?

The supplier may not publish them, they may require login, or enrichment may not finish. leadReveal and leadAbsences distinguish established contact availability from unknown data when possible.

Does the Actor return supplier phones and emails?

It returns public contacts when available, not guaranteed contacts for every supplier. Keep enrichDetails enabled for product and exhibitor requests. Supplier mode requests profile and contact information independently of that switch.

Do I need to log in or submit an inquiry?

No. The Actor does not submit inquiries, chat messages, registrations or payments. It does not retrieve private buyer-account information.

Is this an official Global Sources tool?

No. It is an independent Actor and is not affiliated with or endorsed by Global Sources.

Limitations

  • Source changes, unavailable pages and time limits can reduce delivery. A requested row count is a ceiling, not a guaranteed total.
  • Listing and exhibitor enrichment is limited; later rows may contain only list data. Direct product and supplier inputs have different enrichment handling.
  • Mobile coverage, non-English language coverage, social links and coordinates are not guaranteed.
  • Category pages can expose fewer products than keyword searches. Supplier mode does not enumerate a whole supplier catalog.
  • Contact fields can remain empty even when a company name and address are present. A missing supplierName does not imply no company identity; check companyName, name or org.name.

More B2B supplier and wholesale marketplace scrapers from the same publisher:

Browse all of our scrapers at apify.com/lentic_clockss.

Support

Report problems or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.