ThomasNet Suppliers Scraper
Pricing
from $5.00 / 1,000 supplier scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
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
| Field | Description |
|---|---|
supplierName | Company name from the listing or profile |
supplierId | Numeric ThomasNet ID (stable identifier extracted from the /profile/{id} URL) |
profileUrl | Canonical ThomasNet profile URL |
headline | One-line tagline / summary the supplier publishes |
companyType | Manufacturer, distributor, service provider, custom mfr, etc. |
logoUrl | Company logo image URL |
city / state / postalCode / country | Parsed address parts |
fullAddress | Raw address string as shown on the page |
phone | Primary phone number (from a tel: link when present) |
website | External 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 |
isClaimed | Whether the supplier has claimed/verified their profile |
isAdvertiser | Sponsored / Premier / Featured supplier badge |
sourceUrl | The listing URL the supplier was found on |
position | Card position on its listing page (1-based index) |
enriched | true if the profile page was visited for full data |
scrapedAt | ISO 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:
1. Keyword search
{"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
| Event | Price | When charged |
|---|---|---|
apify-actor-start | $0.00005 | Once per run, scaled by allocated RAM |
supplier-scraped | $0.005 | Each supplier returned (basic card) |
supplier-detail-enriched | $0.003 | Each supplier whose profile page is also scraped (enrichDetails: true) |
Typical run costs:
| Scenario | Cost |
|---|---|
| 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.comhomepage to earn adatadomesession 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()pastmaxResults. 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.00005start 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.
Legal & ethical use
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:
- B2B Lead Finder & Enrichment — turn ThomasNet supplier websites into enriched contacts (emails, phones, socials).
- Bulk Website Contact Extractor — bulk-scan the
websitefield for emails + phones across the whole dataset. - Email Address Validator — validate any emails you derive before outreach.