ThomasNet Scraper - Industrial Suppliers, Phones & Certs avatar

ThomasNet Scraper - Industrial Suppliers, Phones & Certs

Pricing

$3.99 / 1,000 suppliers

Go to Apify Store
ThomasNet Scraper - Industrial Suppliers, Phones & Certs

ThomasNet Scraper - Industrial Suppliers, Phones & Certs

Search ThomasNet for North American industrial suppliers: company name, website, public phone, city/state, company type, annual sales, employees, year founded, product categories and public certification totals. No login. Deduplicated across terms; empty or cut-short searches are free.

Pricing

$3.99 / 1,000 suppliers

Rating

0.0

(0)

Developer

Lantern Lab

Lantern Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Features

Limited permissions

Share

ThomasNet Supplier Search — Industrial Suppliers with Firmographics

A Lantern Lab Actor. Give it product or service terms — "cnc machining", "injection molding", "stainless steel tubing" — or ThomasNet supplier profile URLs, and get thomasnet.com's public supplier listings back with the firmographics a sourcing list needs: company name, ThomasNet profile link, own website, public phone, city / state / country, description, company type (custom manufacturer, distributor, service company…), annual sales, employees, year founded, product categories and the certification totals the profile shows publicly. No ThomasNet login, no cookies, no account of your own.

Price: USD 3.99 per 1,000 supplier rows. No run-start fee. Terms that return nothing, per-input status rows and the run summary are free — you pay for suppliers, not for searches.

What you get

  • Every supplier the public search shows, labelled with the term that found it. Each term is searched separately, in the order you gave it, and every row carries the term and the rank ThomasNet gave that supplier in it.
  • Deduplicated across the whole run. The key is ThomasNet's own supplier id, so a company that matches several of your terms — or that you also listed as a profile URL — is written once and charged once; the input's status row says how many were skipped as duplicates.
  • Firmographics, not just links. Company type comes from ThomasNet's own facet (labels like "Custom Manufacturer; Manufacturer", never guessed from the name), alongside annual sales range, employee range, founding year and the product categories the supplier is filed under. Fields ThomasNet did not send are null, never guesses.
  • Coverage by state or province. The optional region takes ThomasNet's own "Locations Served" coverage codes — the same filter its state list uses, split states included (CN/CS for northern/southern California, ON/QC… for Canada). Leave it empty for all of North America.
  • Certifications, honestly. ThomasNet lists certificate names only to signed-in accounts; the public profile shows totals. So the certifications field carries those public totals (for example "Quality Certifications: 12"), and this README is where you read that the names are behind ThomasNet's login, not dropped by accident.
  • Empty is never reported as failure, and short is never reported as empty. A term ThomasNet answers with no suppliers gets a plain "empty result" status row. A term cut short by your limit, the request ceiling or a refusal from ThomasNet is partial: true with the reason — free of charge either way.
  • It caps itself. maxUpstreamRequests is a hard ceiling on the requests a run sends to ThomasNet, worked out from your input when you leave it empty, so a run is never unbounded.

What it does not do

  • One page per search term — that is everything ThomasNet's public search gives. Without signing in, thomasnet.com serves the first results page only (25 suppliers, measured 2026-10-23) and answers page 2 with a registration wall. A term with more matches than that is marked partial: "platform_page_limit" with the total the page itself reports, so the missing suppliers are visible as missing, never silently dropped. This Actor does not sign in and does not go around the wall.
  • No certification names. Public totals only, as above.
  • No personal contact data. No contact-person names, no e-mail addresses, no RFQ, nothing that needs a ThomasNet account. The phone field is the company's public listing phone only.
  • No image or CAD-file downloads, no supplier catalogs, no review or ranking data beyond what the search itself orders by.
  • No scheduling or monitoring built in; use Apify schedules.

Input

FieldDefaultMeaning
searchTerms—One product/service term per line. Every term is searched separately. Give at least one of searchTerms / supplierUrls.
supplierUrls—ThomasNet supplier profile URLs (or bare /company/.../profile paths), one per line, collected in full from their public profiles.
regionNAThomasNet "Locations Served" coverage code: a state (split states CN/CS, NO/SO, JN/JS, DN/UN, EM/WM, EP/WP, NT/GT), a Canadian province (ON, QC, BC, AB, …) or empty for all of North America. Filters by where suppliers deliver, not only where they are headquartered.
maxSuppliersPerTerm50Upper bound on the rows one search term may produce. The anonymous page holds 25, so anything up to 50 changes nothing unless a term's page happens to be fuller.
includeDetailstrueAlso fetch each supplier's profile to fill certifications with the public totals. When false, certifications stays null and a term costs one request instead of one per supplier.
maxUpstreamRequestsderivedHard ceiling on HTTP requests to ThomasNet for the whole run. Derived from your input when empty.
proxyConfigurationApify ProxyDatacenter by default, which is what this Actor is measured on; thomasnet.com serves its public search and profile pages over it without a bot wall.
{
"searchTerms": ["cnc machining", "injection molding"],
"region": "CN",
"maxSuppliersPerTerm": 25,
"includeDetails": true
}

Output

One row per supplier, recordType: "supplier":

{
"recordType": "supplier",
"supplierId": "400300",
"name": "Eagle Stainless Tube & Fabrication, Inc.",
"url": "https://www.thomasnet.com/company/eagle-stainless-tube-fabrication-inc-400300/profile",
"website": "https://www.eaglestainless.com/",
"phone": "(508) 528-9801",
"city": "Franklin",
"state": "MA",
"country": "USA",
"description": "Manufacturer of standard and custom stainless steel tubing...",
"supplierType": "Manufacturer",
"annualSales": "$10 - 24.9 Mil",
"employees": "50-99",
"yearFounded": "1981",
"certifications": ["Quality Certifications: 12"],
"productCategories": ["CNC Machining", "Stainless Steel Tubing"],
"sourceType": "search",
"searchTerm": "cnc machining",
"sourceUrl": null,
"rank": 1,
"partial": false,
"partialReason": null,
"collectedAt": "2026-10-23T14:05:00.000Z"
}

Every search term and every profile URL also gets one uncharged source_status row:

{
"recordType": "source_status",
"sourceType": "search",
"searchTerm": "cnc machining",
"sourceUrl": null,
"suppliersReturned": 25,
"suppliersCharged": 25,
"duplicatesSkipped": 0,
"suppliersAvailable": 29430,
"partial": true,
"partialReason": "platform_page_limit",
"statusText": "ThomasNet serves the first results page (25 suppliers) without an account...",
"collectedAt": "2026-10-23T14:05:00.000Z"
}

The last row is recordType: "RUN_SUMMARY": totals for the run — suppliers collected and charged, duplicates skipped, empty and partial inputs by reason, upstream requests sent and refused, and why the run stopped if it stopped early.

Field reference — supplier rows

FieldMeaning
supplierIdThomasNet's own supplier id (the tgramsId the site keys profiles by).
name, url, website, phoneCompany name, ThomasNet profile URL, the supplier's own website, and the public listing phone.
city, state, countryAddress as ThomasNet prints it.
descriptionThe company blurb from the listing.
supplierTypeThomasNet's company-type labels, primary first (Manufacturer, Custom Manufacturer, Distributor, …), ;-joined. null when the listing carries none.
annualSales, employees, yearFoundedThe ranges/values the listing states, verbatim. null when not stated.
certificationsPublic certification totals from the profile ("Quality Certifications: 12"). null when includeDetails is off or the detail request failed — see partialReason.
productCategoriesThe headings ThomasNet files the supplier under, in the spelling its result card shows.
sourceType / searchTerm / sourceUrlWhat produced the row: a search term or one of your profile URLs.
rankPosition in that input's results, from 1. A gap in one input's ranks is a supplier an earlier input had already collected.
partial, partialReasonFor a supplier row, partial only ever means its detail request failed (detail_error) and certifications is null.
collectedAtWhen this Actor observed the row (ISO 8601).

Limits

  • 25 suppliers per search term. ThomasNet's anonymous search serves one page; the wall after it is the site's, and the status row says so with the total match count when the page reports one. If you need deeper coverage per term, run several narrower terms (by region or by product wording) rather than expecting pagination.
  • Certification totals, not names. Certificate names are inside the report a ThomasNet account requests; this Actor collects only what the logged-out profile shows.
  • Company data only. No contact-person names, e-mails or RFQ traffic; the phone is the company's public listing phone.
  • Runs are read-only against thomasnet.com: public pages, no login, no cookies, nothing posted.