Global Sources Scraper - B2B Products & Suppliers
Pricing
from $2.20 / 1,000 results
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
Maintained by CommunityActor stats
1
Bookmarked
13
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
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
queryorsearchQueriesfor product rows. - Category: enter
categoryUrlorcategoryIdfor category products. - Product: enter
productUrls,productIdsor product links indetailUrls. - Supplier: enter
supplierUrls, supplier links indetailUrls, orsupplierShortNamewithhomepageId. - Exhibitors: enter
exhibitorRegionfor 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
| Field | Description | Example |
|---|---|---|
rowType | Entity represented by the row. | product |
id | Stable row identifier. | 1226081829 |
productId | Product number. | 1226081829 |
title | Product title. | Hydraulic cylinder |
url | Product page URL. | https://www.globalsources.com/Hydraulic-cylinder/Single-Acting-Hydraulic-cylinders-1226081829p.htm |
supplierName | Supplier name when listed. | Example Manufacturing Ltd |
supplierShortName | Supplier's short name. | easy-buy |
priceText | Displayed price, including its unit when present. | US$ 35-60 / Piece |
priceLow | Lower price bound as text. | 35 |
priceHigh | Upper price bound as text. | 60 |
priceCurrency | Currency code when available. | USD |
minOrderQuantity | Published minimum order quantity. | 100 Pieces |
imageUrls | Product image URLs, not image downloads. | [] |
description | Product description. | Single-acting hydraulic cylinder |
category | Available category path. | Industrial Supplies |
modelNumber | Published model reference. | MODEL-EXAMPLE |
searchQuery | Keyword associated with a search row. | hydraulic cylinder |
Supplier and exhibitor rows
| Field | Description | Example |
|---|---|---|
rowType | Exhibitors also use the supplier row type. | supplier |
id | Stable supplier row identifier. | 6008855290824 |
name | Company name. | Example Manufacturing Ltd |
homepageId | Supplier homepage number. | 6008855290824 |
supplierId | Separate supplier identifier. | 2008855290824 |
url | Supplier or directory URL. | https://easy-buy.manufacturer.globalsources.com/homepage_6008855290824.htm |
booth | Exhibitor booth, when published. | 1A01 |
mainProducts | Supplier's main product keywords. | ["Hydraulic cylinders"] |
phones | Available public phone entries. | [{"value":"+1 555 0100","type":"landline"}] |
emails | Available public email entries. | [{"value":"name@example.com","type":"work"}] |
address | Published address components. | {"country":"China"} |
person | Published contact name and role. | {"name":"Jane Doe","role":"Manager"} |
web.website | Supplier's own website, not its Global Sources page. | https://example.com |
leadReveal | Contact availability; may be visible, gated, absent or null. | visible |
leadAbsences | Reasons for missing contact fields when established. | {} |
companyProfileUrl | Company 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
- Open Global Sources Scraper in Apify Console.
- Fill one target field and leave
modeonauto. - Set
maxResultsto 3 for a small first run. - Click Start and wait for completion.
- 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.
Product search
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
| Field | What to enter | Default |
|---|---|---|
mode | auto, product_search, category, product, supplier or exhibitors. | auto |
query | One product keyword. | Empty; example prefill: stainless steel pipe |
searchQueries | A list of keywords; replaces query. | Empty |
categoryUrl | A Global Sources category URL or relative category path. | Empty |
categoryId | Numeric category ID. | Empty |
productUrls | Product page URLs. | Empty |
productIds | Product IDs. | Empty |
supplierUrls | Supplier homepage or profile URLs. | Empty |
detailUrls | Product links, or supplier links for supplier mode. | Empty |
supplierShortName | Supplier subdomain; pair with homepageId. | Empty |
homepageId | Homepage number; pair with supplierShortName. | Empty |
exhibitorRegion | Directory region code, such as HK. | Empty |
maxResults | Rows per input, from 1 to 200. | 70; example prefill: 3 |
maxPages | Listing page limit, from 1 to 50. | 5 |
page | Starting listing page, from 1 to 100. | 1 |
enrichDetails | Add available product and supplier details. | true |
lang | Site language setting; use enus for English. | enus |
surface | www or mobile; prefer www. | www |
fields | Optional 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.statuscan bePARTIAL; 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 plan | Start fee at 1024 MB | Price per row | Price 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 |
maxResultsapplies 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
maxTotalChargeUsdin 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 afterSUCCEEDED, 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 ApifyClientclient = 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
Is it legal to scrape Global Sources?
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
supplierNamedoes not imply no company identity; checkcompanyName,nameororg.name.
Related scrapers
More B2B supplier and wholesale marketplace scrapers from the same publisher:
- Kompass Scraper
- Thomasnet Scraper
- iPROS Scraper
- Xometry Scraper
- Europages Scraper
- IndiaMART Scraper
- MonotaRO Scraper
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.