ThomasNet Suppliers Scraper avatar

ThomasNet Suppliers Scraper

Pricing

from $5.00 / 1,000 supplier scrapeds

Go to Apify Store
ThomasNet Suppliers Scraper

ThomasNet Suppliers Scraper

Scrape ThomasNet industrial suppliers by keyword, location, or URL. Returns name, phone, website, location, year founded, employees, certifications. MCP/API-ready.

Pricing

from $5.00 / 1,000 supplier scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Scrape ThomasNet industrial suppliers by keyword, location, category, or direct profile URL. Returns clean, structured JSON for every supplier: name, headline, phone, website, location, company type, claim/advertiser status, plus optional full-profile enrichment with description, year founded, employee count, annual sales, certifications, and product/service taxonomy.

ThomasNet (thomasnet.com) is the largest North-American industrial directory — 500,000+ verified manufacturers, distributors, and service providers across 70,000 product categories. There is no public ThomasNet API, and the site is protected by DataDome anti-bot. Plain HTTP scrapers, datacenter proxies, and bare headless browsers get blocked. This actor uses Camoufox (a Firefox anti-detect engine) + Apify Residential US proxy to clear DataDome reliably.

What you get

FieldDescription
supplierNameCompany name from the listing or profile
supplierIdNumeric ThomasNet ID (stable identifier extracted from the /profile/{id} URL)
profileUrlCanonical ThomasNet profile URL
headlineOne-line tagline / summary the supplier publishes
companyTypeManufacturer, distributor, service provider, custom mfr, etc.
logoUrlCompany logo image URL
city / state / postalCode / countryParsed address parts
fullAddressRaw address string as shown on the page
phonePrimary phone number (from a tel: link when present)
websiteExternal company website (off-ThomasNet)
description (enrich only)Long-form company description / "About" block
yearFounded (enrich only)Year founded, parsed as a number
employeeCount (enrich only)Employee count or band (e.g. "50-99", "100+")
annualSales (enrich only)Annual revenue band (e.g. "$10 to 50 Million")
certifications (enrich only)Quality certifications list (ISO 9001, AS9100, ITAR, etc.)
products (enrich only)Products / services / capabilities taxonomy
isClaimedWhether the supplier has claimed/verified their profile
isAdvertiserSponsored / Premier / Featured supplier badge
sourceUrlThe listing URL the supplier was found on
positionCard position on its listing page (1-based index)
enrichedtrue if the profile page was visited for full data
scrapedAtISO 8601 timestamp

When to use

  • B2B lead generation — find machine shops, fabricators, distributors, and contract manufacturers in any US state or city.
  • Procurement research — build target lists by capability (CNC machining, sheet metal, injection molding) or certification (AS9100, ISO 13485).
  • Competitor intelligence — pull every supplier in your category, with year founded and revenue band.
  • AI agents — give Claude / ChatGPT / your MCP-connected agent a clean, paid-per-result ThomasNet tool. Returns structured JSON ready for downstream enrichment, scoring, or CRM import.

When NOT to use

  • You need supplier emails — ThomasNet hides email behind an internal RFQ form; phone and website are reliably populated, email is not.
  • You need a full crawl of all 500K suppliers in one run — use targeted listing URLs (by city, state, category) and run in batches. ThomasNet anti-bot will throttle massive single runs.
  • You need data from sites other than ThomasNet — see the matching actor in Khadin's Apify portfolio.

Input

Three input modes, freely mixable in a single run:

{
"searchQueries": ["cnc machining", "sheet metal fabrication"],
"maxResults": 50,
"maxPagesPerQuery": 5
}

Each keyword is searched on ThomasNet's North-America directory and paginated up to maxPagesPerQuery.

2. Listing URLs (location / category)

{
"startUrls": [
"https://www.thomasnet.com/suppliers/usa/california/los-angeles",
"https://www.thomasnet.com/products-suppliers/cnc-machining/",
"https://www.thomasnet.com/suppliers/usa/texas/houston"
],
"maxResults": 100,
"maxPagesPerQuery": 10
}

Paginates each listing URL until either maxResults or maxPagesPerQuery is hit.

3. Direct profile URLs

{
"startUrls": [
"https://www.thomasnet.com/profile/12345678/acme-machining.html"
],
"enrichDetails": true
}

Auto-detected from the URL pattern. Always scraped as enriched (full profile).

Detail enrichment toggle

"enrichDetails": true follows every listing card to its profile page to add description, year founded, employee count, annual sales, certifications, and products. Costs an extra $0.003 per enriched supplier.

Pricing — Pay-Per-Event

EventPriceWhen charged
apify-actor-start$0.00005Once per run, scaled by allocated RAM
supplier-scraped$0.005Each supplier returned (basic card)
supplier-detail-enriched$0.003Each supplier whose profile page is also scraped (enrichDetails: true)

Typical run costs:

ScenarioCost
20 suppliers, basic~ $0.10
50 suppliers, basic~ $0.25
100 suppliers, basic~ $0.50
100 suppliers, fully enriched~ $0.80
500 suppliers, fully enriched~ $4.00

Pay-Per-Usage (compute + proxy passthrough) is also enabled — heavy users can opt for usage-based billing instead of per-event.

How it works

  • Browser: Camoufox (Firefox anti-detect). Plain headless Chromium + stealth gets soft-blocked on ~50% of DataDome navs; Camoufox clears reliably.
  • Proxy: Apify Residential US primary, DataImpulse residential US as tier-2 fallback if Apify Residential keeps getting blocked. Datacenter IPs are rejected — residential is mandatory for ThomasNet.
  • Warmup: Every session first visits thomasnet.com homepage to earn a datadome session cookie before hitting the target URL. This is the standard DataDome-bypass pattern.
  • Resilience: 5 retry attempts per page, each with a fresh Camoufox session. Within a session, warmup itself retries with page reload. Confident "no results" pages are recognized as a graceful empty (not a block).
  • Cost safety: a triple-guard charge counter physically blocks Actor.charge() past maxResults. Runs where DataDome blocks every session exit SUCCEEDED with an empty dataset and a terminal warning message — you are not billed for suppliers when blocked (only the $0.00005 start fee).

Reliability

Based on brutal cloud testing (24+ runs across keyword searches, listing URLs, direct profile URLs, and edge cases), typical success rate is ~87%. On the remaining ~13% of runs, DataDome blocks every one of the 5 residential-proxy sessions in a row — this is IP-reputation pool variance, not a scraper defect (successful sessions clear DataDome within seconds). In those cases the run exits with Done. 0 suppliers scraped and a DataDome blocked all N navigation attempts status message. Recommended pattern: retry the run once; the second attempt almost always succeeds because it pulls a fresh proxy IP.

Direct profile URLs (/company/{slug}-{id}/profile) and edge-case inputs (empty / non-ThomasNet URL) have near-100% success. The variance is on the keyword search flow.

MCP-ready

Exposed in Apify's MCP server as apify--thomasnet-suppliers-scraper. Tool description, input descriptions, and output keys are written for AI-agent consumption: every field has a stable semantic key, every input has a working prefill, and the run prints a cost cap upfront so an agent can budget the call.

# Claude Desktop / ChatGPT MCP:
# Add https://mcp.apify.com?tools=khadinakbar/thomasnet-suppliers-scraper
# Direct API call:
apify call khadinakbar/thomasnet-suppliers-scraper --input='{
"searchQueries": ["cnc machining"],
"maxResults": 20
}'

Output

Suppliers are pushed to the run's default dataset (one JSON record per supplier). An end-of-run summary lands in key-value store OUTPUT with counts, navigation success/block stats, the proxy tier used, and the billed cost in USD.

This actor scrapes publicly accessible company directory information from ThomasNet. You are responsible for using the data in compliance with ThomasNet's Terms of Service and applicable laws. Do not use this actor or its output for spam, fraud, harassment, or any unlawful purpose. The actor respects rate limits and does not attempt to access login-protected or paywalled content.

Maintenance

Built and maintained by @khadinakbar. Issues, feature requests, and broken-selector reports go to the actor's Issues tab on Apify.

Companion actors

Pair with: