ThomasNet Scraper icon

ThomasNet Scraper

Scrape ThomasNet suppliers and manufacturers by keyword, category, location, certification or company type, or paste profile URLs. Get one rich record…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

ThomasNet Scraper at a glance

ThomasNet Scraper is a ready-to-run Apify actor from abotapi for collecting lead generation data. Its documented output includes company, tier, type, phone and website, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Lead Generation, Jobs, Automation
Pricing
$2.00 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
23 options

Scrape ThomasNet suppliers and manufacturers by keyword, category, location, certification or company type, or paste profile URLs. Get one rich record per company with contacts, certifications, products, locations, coordinates, social links, sales data and more.

What ThomasNet Scraper can do

  • One rich record per company. The directory listing and the full company profile are merged into one flat record, so every field the company publishes lands in the same shape.
  • Certifications, products, personnel and locations. Captures certification badges, product and family listings, personnel names and titles, addresses with geo coordinates, and social links.
  • Dual mode. Run keyword or category searches with filters, or scrape specific company-profile and search URLs you paste.
  • Precise filtering. Narrow results by US state or province, ZIP plus radius, certification, and company type, with global company-name sorting.
  • Full-profile enrichment on demand. Turn on company-profile enrichment to add products, certification totals, families, news, brand and affiliation details beyond the base listing.
  • Resume or monitor. Resume a previous run, or track recurring supplier changes with NEW, UPDATED and optional UNCHANGED labels.

Choose what to collect

These inputs let you configure ThomasNet Scraper - Suppliers, Manufacturers & Company Data. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredChoose how to find companies. 'search' runs keyword/category searches with filters. 'url' scrapes the company-profile or search URLs you paste. 'name' runs a search and keeps only companies whose name contains the search term.

Choices: search, url, name

queriesarrayOne or more keywords or product categories to search, e.g. 'valves', 'cnc machining', 'industrial pumps'. Each term is searched independently.
statestringTwo-letter US state or Canadian province code to narrow the search by location, e.g. 'OH', 'CA', 'TX'. Leave empty for a North-America-wide search.
areastringDirectory area code: NA (all North America), a US state / Canadian province code, or a sub-state region such as NO/SO (Ohio), CN/CS (California), EM/WM (Massachusetts), JN/JS (New Jersey), DN/UN (New York), EP/WP (Pennsylvania), NT/GT (Texas), NW. Overridden by State when both are set.

Choices: NA, AL, AK, AB, AZ, AR, BC, CN, CS, CO, CT, DE, DC, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MB, MD, EM, WM, MI, MN, MS, MO, MT, NE, NV, NB, NH, JN, JS, NM, DN, UN, NL, NC, ND, NW, NS, NU, NO, SO, OK, ON, OR, EP, WP, PE, PR, QC, RI, SK, SC, SD, TN, NT, GT, UT, VT, VI, VA, WA, WV, WI, WY, YT

zipstringZIP or postal code to center a radius search, e.g. '44023'. Use together with Radius.
radiusintegerDistance in miles around the ZIP / postal code to include. Only applies when a ZIP is set.
certificationstringRestrict results to suppliers holding a certification, e.g. 'ISO 9001', 'Woman Owned', 'AS9100'. Matched against the supplier-validation and quality-certification facets.
Show 16 more inputs
More input fields
InputWhat it controls
companyTypestringFilter by the type of supplier.

Choices: , M, D, S, C, R

sortBystringOrder of the results returned by the search. Distance needs the ZIP field; without a ZIP the search keeps relevance order.

Choices: relevance, company_az, company_za, distance

excludeIdsarraySupplier IDs (tgramsId) to skip, so repeat runs do not re-collect or re-bill companies you already have. Skipped companies are not charged.
urlsarrayMulti-URL mode: paste ThomasNet company-profile URLs (e.g. https://www.thomasnet.com/company/acme-corp-12345/profile), search URLs (keyword, category, filtered, paginated), brands sub-pages, /profile/ or /catalogs/ links. Leave the list as is to scrape one example of each shape. Search-mode filter fields are ignored. Search URLs return matching suppliers up to your result and page limits.
fetchDetailsbooleanWhen on, enrich each company with its full profile, including available certifications, locations, products and news. When off, return search-result fields without a separate company profile request.
includeWebsiteContactsbooleanOff by default. When on, the actor opens each company's own website (home page and contact page, a few seconds each) and fills emails, websitePhones and websiteSocialLinks. Companies whose website cannot be read keep those fields empty. No extra charge event; it adds run time.
maxPagesintegerMaximum result pages per search. Empty or 0 means unlimited. The run still stops at Max items.
maxItemsintegerMaximum companies to save across the run. In incremental mode, caps companies checked, including unchanged suppliers. Previously saved resume IDs do not consume this limit. Set 0 for unlimited.
resumeFromRunIdstringPaste a previous run ID from this actor. Suppliers already saved by that run are skipped before enrichment. Keep the same search or URLs to continue collecting unseen suppliers.
incrementalModebooleanThe first run marks suppliers NEW. Later runs return NEW and UPDATED suppliers. Max items bounds the suppliers checked, including unchanged suppliers. State is separate for each user and search configuration.
stateKeystringOptional name for a recurring monitoring campaign. Reuse it with the same search and enrichment settings. Leave empty to derive a campaign from your input.
emitUnchangedbooleanIncremental mode only. Also save suppliers whose content has not changed, marked UNCHANGED. These saved results and successful enrichment are charged normally.
ignoreFieldsForChangesarrayOptional. Field names that must NOT count as a change in incremental mode, for example "annualSales" or "personnel". A supplier whose only differences are in these fields is treated as UNCHANGED, so it is not saved or billed as UPDATED. A plain name matches at any nesting depth; use a dotted path such as address.city for one nested field. Ignored fields still appear in rows that are saved. Changing this list does not mark everything as UPDATED.
mcpConnectorsarrayOptional. Connect MCP servers (Notion, Linear, Airtable, Apify) to push the scraped companies straight into your tools after the run.
notionParentPageUrlstringOptional. When a Notion MCP connector is set, the URL of the Notion page under which a results database is created.
maxNotifyListingsintegerOptional. Cap on how many companies are pushed to the connected MCP apps.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

nameCompany (text)
tierTier (text)
typeType (text)
primaryPhonePhone (text)
websiteWebsite (link)
annualSalesAnnual Sales (text)
numberEmployeesEmployees (text)
yearFoundedFounded (text)
headingCategory (object)
addressAddress (object)
personnelPersonnel (array)
certificationsCertifications (array)
Show 38 more fields
socialSocial (object)
logoUrlLogo (image)
urlURL (link)
scrapedAtScraped (text)
changeTypeChange (text)
changedFieldsChanged fields (array)
firstSeenAtFirst seen (text)
lastSeenAtLast seen (text)
tgramsIdTgrams id (text)
descriptionDescription (text)
descriptionByCompanyDescription by company (text)
typeLabelType label (text)
headingsHeadings (array)
otherHeadingsOther headings (array)
certificationTotalsCertification totals (array)
productsProducts (array)
brandsBrands (array)
headingBrandsHeading brands (array)
familiesFamilies (array)
locationsLocations (array)
locationCountLocation count (number)
locationTypesLocation types (array)
otherActivitiesOther activities (array)
affiliatedMemberOfAffiliated member of (array)
videosVideos (array)
whitepapersWhitepapers (array)
newsNews (array)
additionalInformationAdditional information (text)
isClaimedIs claimed (boolean)
isAdvertiserIs advertiser (boolean)
isTopResponderIs top responder (boolean)
isMultiLocationIs multi location (boolean)
xometryVerifiedXometry verified (boolean)
searchModeSearch mode (text)
searchRankSearch rank (number)
sponsoredSponsored (boolean)
sponsoredPositionSponsored position (number)
sponsoredHeadingsSponsored headings (array)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "__typename": null,
  "additionalInformation": null,
  "address": {
    "address1": "1 Example Way",
    "address2": null,
    "address3": null,
    "city": "Anytown",
    "state": "OH",
    "stateName": "Ohio",
    "zip": "00000",
    "zip4": null,
    "country": "USA",
    "county": null,
    "latitude": 0,
    "longitude": 0
  },
  "ads": null,
  "affiliatedMemberOf": null,
  "affiliationCompanyLabel": null,
  "affiliationContactUrl": null,
  "affiliationFeaturedMembers": null,
  "annualSales": "$10 - 24.9 Mil",
  "brands": null,
  "catalogType": null,
  "certificationTotals": [
    {
      "type": "DIVERSITY",
      "count": 3
    }
  ],
  "certifications": [
    {
      "id": "000000",
      "code": "ISO9001",
      "title": "ISO 9001",
      "type": "QUALITY",
      "tier": null,
      "isActive": true
    }
  ],
  "companyAd": null,
  "description": "Manufacturer of ball, check, gate and butterfly valves.",
  "descriptionByCompany": null,
  "families": [
    {
      "id": "000000",
      "name": "Valves"
    }
  ],
  "heading": {
    "headingId": "00000000",
    "name": "Valves",
    "naturalName": "Valves",
    "familyName": "Flow Control",
    "familyId": "0000",
    "description": null,
    "url": null
  },
  "headingBrands": null,
  "headings": [
    {
      "headingId": "00000000",
      "name": "Valves",
      "familyName": "Flow Control",
      "description": null,
      "url": null
    }
  ],
  "isAdvertiser": false,
  "isAffiliationPage": null,
  "isClaimed": true,
  "isMultiLocation": null,
  "locationTypes": null,
  "locations": null,
  "logoTitle": null,
  "logoUrl": "https://example.com/logo.jpg",
  "mainLocationName": null,
  "mainLocationTgramsId": null,
  "name": "Acme Valve Corp.",
  "news": null,
  "numberEmployees": "10-49",
  "otherActivities": null,
  "otherHeadings": null,
  "personnel": [
    {
      "name": "Jane Doe",
      "title": "Owner"
    }
  ],
  "premiums": null,
  "primaryPhone": "+1 000-000-0000",
  "products": [
    {
      "id": "0000.0000",
      "name": "Ball valves",
      "type": "CATEGORY"
    }
  ],
  "social": [
    {
      "accountId": "sample-company",
      "type": "LINKEDIN"
    }
  ],
  "tgramsId": "00000000",
  "tier": "VERIFIED",
  "type": "M",
  "videos": null,
  "website": "https://example.com/",
  "whitepapers": null,
  "xometryVerified": false,
  "yearFounded": "1971",
  "slug": "acme-valve-corp-00000000",
  "searchMode": "url",
  "sourceUrl": "https://www.thomasnet.com/company/acme-valve-corp-00000000/profile",
  "url": "https://www.thomasnet.com/company/acme-valve-corp-00000000/profile",
  "scrapedAt": "2026-01-01T00:00:00+00:00",
  "addressLine1": "1 Example Way",
  "city": "Anytown",
  "stateCode": "OH",
  "stateName": "Ohio",
  "zip": "00000",
  "country": "USA",
  "latitude": 0,
  "longitude": 0
}

Ways to use this data

  • Sales and business development teams: build targeted outreach lists of manufacturers or distributors in a state or ZIP radius.
  • Sourcing and procurement teams: find suppliers holding a specific certification, such as ISO 9001, for a product category.
  • Market researchers: size a product category by counting active suppliers and compare how listings change over time.
  • Lead-generation agencies: run a saved search on a schedule and collect only the new or updated suppliers each time.
  • Competitive intelligence teams: watch a competitor's profile page for changes to its products, certifications or headcount.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does ThomasNet Scraper return?

The documented output for ThomasNet Scraper includes company, tier, type, phone, website, annual sales, employees and founded. Availability of each field depends on the source page and the selected mode.

How much does ThomasNet Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed suppliers on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Track changes across recurring runs. Each run then returns only new and updated suppliers; unchanged ones are skipped and not billed unless you also enable Include unchanged suppliers.

Why didn't "Fetch full company profiles" change my pasted URL's fields?

In url mode, a pasted company-profile link is always fetched at full profile depth, because that is the exact page you asked for. The toggle only decides whether the run is billed for that enrichment, not whether it happens. Search mode is different: there, the toggle controls both the fetch and the charge.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with ThomasNet Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.