ThomasNet Scraper - Suppliers, Manufacturers & Company Data avatar

ThomasNet Scraper - Suppliers, Manufacturers & Company Data

Pricing

from $1.00 / 1,000 supplier results

Go to Apify Store
ThomasNet Scraper - Suppliers, Manufacturers & Company Data

ThomasNet Scraper - Suppliers, Manufacturers & Company Data

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.

Pricing

from $1.00 / 1,000 supplier results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

0

Monthly active users

2 days ago

Last modified

Share

ThomasNet Supplier Scraper

Extract suppliers, manufacturers, distributors and service providers from the ThomasNet industrial directory at scale. Search by keyword, product category, location, certification or company type, or paste profile URLs, and get one rich, structured record per company: full contact details, certifications, products, locations, geo coordinates, social links, annual sales, headcount and more. Fields reflect what each company publishes; unavailable values remain null.

Why This Scraper?

  • One rich record per company, merging the directory listing with the full company profile.
  • Captures contacts (personnel with title, and email/phone where the company publishes them), certifications, products, locations, geo coordinates and social links.
  • Dual mode: keyword/category search with filters, or scrape specific company-profile and search URLs.
  • Filter by US state or province, ZIP plus radius, certification, and company type, with name sorting.
  • Optional company-profile enrichment adds available certifications, products and locations to saved supplier records.
  • Resume previous runs or monitor recurring supplier changes with NEW, UPDATED and optional UNCHANGED labels.
  • Optional one-click export to Notion, Linear, Airtable or Apify via MCP connectors.

Data You Get

Sample shape - values are illustrative placeholders, not from a live listing.

FieldExample
nameAcme Valve Corp.
tgramsId00000000
tierVERIFIED
typeM
primaryPhone+1 000-000-0000
websitehttps://example.com/
annualSales$10 - 24.9 Mil
numberEmployees10-49
yearFounded1971
heading{ "headingId": "00000000", "name": "Valves" }
address{ "city": "Anytown", "state": "OH", "latitude": 0.0, "longitude": 0.0 }
personnel[ { "name": "Jane Doe", "title": "Owner", "email": null, "phone": null } ]
certifications[ "ISO 9001" ]
certificationTotals[ { "type": "DIVERSITY", "count": 3 } ]
families[ { "id": "000000", "name": "Valves" } ]
products[ { "id": "0000.0000", "type": "CATEGORY" } ]
social[ { "accountId": "sample-company", "type": "LINKEDIN" } ]
logoUrlhttps://example.com/logo.jpg
descriptionManufacturer of ball, check and gate valves.
urlhttps://www.thomasnet.com/company/acme-valve-corp-00000000/profile
scrapedAt2026-01-01T00:00:00+00:00

How to Use

Basic keyword search with full profiles:

{
"mode": "search",
"queries": ["valves", "industrial pumps"],
"fetchDetails": true,
"maxItems": 20,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": [] }
}

Filtered search (manufacturers in Ohio, sorted by name):

{
"mode": "search",
"queries": ["cnc machining"],
"state": "OH",
"companyType": "M",
"sortBy": "company_az",
"maxItems": 20,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": [] }
}

Scrape specific company profiles:

{
"mode": "url",
"urls": [
"https://www.thomasnet.com/company/acme-valve-corp-00000000/profile"
],
"fetchDetails": true,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": [] }
}

Recurring supplier monitoring:

{
"mode": "search",
"queries": ["valves"],
"fetchDetails": true,
"maxItems": 20,
"incrementalMode": true,
"stateKey": "valve-monitor",
"emitUnchanged": false
}

Input Parameters

ParameterTypeDescription
modeselectsearch (keyword/category) or url (scrape pasted URLs). Required.
queriesarraySearch mode. One or more keywords or product categories.
statestringSearch mode. Two-letter US state or province code to narrow by location.
zipstringSearch mode. ZIP / postal code to center a radius search.
radiusintegerSearch mode. Distance in miles around the ZIP.
certificationstringSearch mode. Restrict to suppliers holding a certification, e.g. ISO 9001.
companyTypeselectSearch mode. Filter by supplier type (manufacturer, distributor, etc.).
sortByselectSearch mode. Result order: relevance or company name A-Z / Z-A.
urlsarrayURL mode. Company-profile or search URLs to scrape. Filters are ignored.
fetchDetailsbooleanEnrich each company with its full profile. Default true.
maxPagesintegerSafety ceiling on pages per search. Empty / 0 = unlimited. Does not cap items.
maxItemsintegerMaximum companies to collect across the whole run. Default 20. 0 = unlimited.
resumeFromRunIdstringOptional previous run ID from this actor; skip its saved supplier IDs before enrichment.
incrementalModebooleanDefault false. Compare suppliers with the previous campaign baseline and save NEW or UPDATED records.
stateKeystringOptional recurring campaign name. Leave empty for input-derived state.
emitUnchangedbooleanDefault false. Also save UNCHANGED suppliers in incremental mode.
proxyobjectOptional connection settings.
mcpConnectorsarrayOptional. MCP connectors (Notion, Linear, Airtable, Apify) to export results.
notionParentPageUrlstringOptional. Notion page under which a results database is created.
maxNotifyListingsintegerOptional. Cap on how many companies are pushed to connected MCP apps.

Result limits and sorting

maxItems limits saved companies across the run; maxPages limits result pages per search. Name sorting reads all matching companies before returning results in global A-Z or Z-A order, and fails clearly if your page ceiling prevents a complete sort. Relevance ordering can return the first matching results without reading the complete directory. States split into two source regions are queried together, so a page can contain up to 50 companies before deduplication; the overall item cap still applies. Company-type filters include both primary and secondary business activities, while the output retains the original primary type.

Resume & recurring updates

To continue a previous run, set resumeFromRunId to that run's ID and keep the same search or URLs. Previously saved suppliers are skipped before enrichment and do not consume the new run's item limit. Pagination continues past pages containing only previously saved suppliers. The reference covers the selected run's dataset, not every earlier run in a chain.

For daily or weekly monitoring, enable incrementalMode. The first run saves suppliers as NEW. Later runs save NEW and UPDATED suppliers; changedFields lists the top-level fields that changed. Enable emitUnchanged to also save UNCHANGED suppliers. Scrape timestamps do not count as content changes. firstSeenAt and lastSeenAt record when the campaign first and most recently observed each supplier. These four fields are added only in incremental mode.

In incremental mode, maxItems limits suppliers checked, including unchanged suppliers. A run may therefore save fewer items than the limit, or zero when nothing changed. Use maxItems: 0 to check all matching suppliers within your page limit. Only saved records count toward result and enrichment charges; the normal start charge still applies. Missing suppliers are not reported as deleted or expired.

Each Apify user's monitoring state is separate. Reuse the same search, filters and enrichment settings for comparisons. A stateKey names a campaign; leave it empty for an automatically derived scope. Resume and incremental mode can be combined: the selected prior run's suppliers are skipped before the remaining suppliers are compared.

Send results into your apps (MCP connectors)

Connect one or more MCP servers in the mcpConnectors field to push the scraped companies straight into your own tools after the run finishes. Supported servers include Notion, Linear, Airtable and Apify. For Notion, set notionParentPageUrl to the page under which a results database should be created, and use maxNotifyListings to cap how many companies are exported. Export is a side-channel: it never changes the dataset and never fails the run.

Output Example

Sample shape - values are illustrative placeholders, not from a live listing.

{
"__typename": null,
"additionalInformation": null,
"address": {
"address1": "1 Example Way",
"city": "Anytown",
"state": "OH",
"stateName": "Ohio",
"zip": "00000",
"country": "USA",
"latitude": 0.0,
"longitude": 0.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": [
"ISO 9001"
],
"companyAd": null,
"description": "Manufacturer of ball, check, gate and butterfly valves.",
"descriptionByCompany": null,
"families": [
{
"id": "000000",
"name": "Valves"
}
],
"heading": {
"headingId": "00000000",
"name": "Valves"
},
"headingBrands": null,
"headings": [
{
"headingId": "00000000",
"name": "Valves",
"familyName": "Flow Control"
}
],
"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",
"email": null,
"phone": null
}
],
"premiums": null,
"primaryPhone": "+1 000-000-0000",
"products": [
{
"id": "0000.0000",
"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",
"city": "Anytown",
"stateCode": "OH",
"latitude": 0.0,
"longitude": 0.0,
"url": "https://www.thomasnet.com/company/acme-valve-corp-00000000/profile",
"sourceUrl": "https://www.thomasnet.com/company/acme-valve-corp-00000000/profile",
"slug": "acme-valve-corp-00000000",
"searchMode": "search",
"scrapedAt": "2026-01-01T00:00:00+00:00"
}

Plan Requirement

An Apify account is required. Usage is billed according to the actor’s active pricing shown in the Store.