Thomasnet Scraper | US Industrial Supplier Data avatar

Thomasnet Scraper | US Industrial Supplier Data

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Thomasnet Scraper | US Industrial Supplier Data

Thomasnet Scraper | US Industrial Supplier Data

Extract US industrial suppliers, public phones, addresses, company profiles, and catalog data from Thomasnet. Search by keyword, category, or company URL and pay per delivered row plus a start fee.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

Thomasnet Scraper

Extract US industrial supplier profiles, public contact details, categories, and catalog rows from Thomasnet for export and analysis.

  • Find suppliers by keyword, category, company URL, or company ID.
  • Get public phones, addresses, websites, capabilities, and company size information where available.
  • Explore category headings, company directory entries, product catalogs, and search suggestions.
  • Export rows or use them with AI agents and the Apify API.
  • Pay $3.00 per 1,000 delivered rows on the Free plan, plus a small start fee.

What does Thomasnet Scraper do?

Thomasnet Scraper turns public information from www.thomasnet.com into structured rows for supplier discovery, procurement shortlists, and industrial research. It covers the usa market. This is an unofficial Actor, not affiliated with Thomas Publishing or Thomasnet.

  • Suppliers: supplier_search, heading, and company find supplier lists or individual profiles.
  • Directory: browse and taxonomy return categories and headings; enumerate returns company directory entries.
  • Products: catalog searches catalog rows. In supplier modes, includeProducts adds separate product rows and is off by default. Each added row is billed at the same rate and shares the input's row limit.
  • Reference information: suggest returns search suggestions; filters lists supplier filter references.

enrichDetails is on by default. It adds available profile information to the same supplier row, without creating a separately billed profile row.

What data can you extract from Thomasnet?

Rows carry rowType, recordType, and id to distinguish entities. Available fields depend on the mode and the source. source identifies Thomasnet, and scrapedAt records when the row was produced.

Supplier rows

FieldDescriptionExample
tgramsIdThomasnet company identifier30989688
nameSupplier nameExample Manufacturing
profileUrlCompany profile linkhttps://www.thomasnet.com/company/electro-plastics-30989688/profile
websitePublished supplier websitehttps://example.com
primaryPhonePublished phone; optionally masked+1 555 0100
phonesPublic phone entries; not masked[{"value":"+1 555 0100"}]
addressStreet, locality, region, postal code, and country{"locality":"Cleveland","region":"OH"}
geoPublished coordinates{"lat":41.5,"lng":-81.7}
annualSalesSource sales band$1 - 4.9 Mil
numberEmployeesSource employee band10-49
yearFoundedPublished founding year1980
capabilitiesSupplier capabilities[]
personnelPublished names and roles[{"name":"Jane Doe","title":"Sales Manager"}]
webWebsite and published social links{"website":"https://example.com","socials":[]}

Product rows

FieldDescriptionExample
productIdProduct identifier within its supplier123:product:456
supplierIdParent company identifier123
supplierNameParent supplier nameExample Manufacturing

Product rows also include the product name and available supplier location information. Supplier rows do not embed a product list.

Catalog rows

FieldDescriptionExample
catalogIdCatalog row identifier12345
thomasUrlPublished catalog linkhttps://www.thomasnet.com/
partNumberPublished part numberEX-100

Catalog rows use rowType: "catalog_item" and can include company, imageUrl, and attributes.

Heading rows

FieldDescriptionExample
headingIdSupplier heading identifier45330503
nameHeading nameCNC Machining
companyCountSource's company count for the heading25

Category rows

FieldDescriptionExample
categoryIdCategory identifier123
slugCategory text used for navigationmachinery
categoryCountNumber of child categories reported12

Suggestion rows

FieldDescriptionExample
suggestTypeSuggestion groupheadings_family
termRequested text or returned popular searchvalves

Filter rows

FieldDescriptionExample
filterIdSupplier filter reference ID123
sectionGroup containing the referenceLocations Served

How to scrape Thomasnet

  1. Open Thomasnet Scraper in Apify Console.
  2. Fill a target field, such as query, and leave mode on auto for supplier searches.
  3. Set maxResults to 3 for a small first run.
  4. Click Start and wait for completion.
  5. Open the dataset to inspect and download rows.

An empty JSON input {} starts an example search for cnc machining, limited to three rows. Normal event charges apply. With one target field, automatic selection chooses its matching mode. URL targets take priority over IDs, followed by category slugs and keywords; review INPUT_REPORT if you combine targets.

Use query or searchQueries. Public keyword searches return up to 25 suppliers per keyword. Optional zip and radius narrow geographic searches.

Heading

Use headingId, headingSlug, or a heading URL in startUrls. Public heading lists expose up to 50 suppliers. Prefer an ID when a slug cannot be resolved.

Company

Use companyUrl, detailUrls, or tgramsId. Company URLs must contain a company name and numeric ID. companySlug is an optional companion to the ID.

Browse

Use mode: "browse" and explicitly set query: "" for root categories. Otherwise, supply a returned category slug in query or headingSlug to go down one level. Omitting query entirely can retain the sample search text, so do not omit it for root browsing.

Enumerate

Select enumerate for company directory rows. Use query: "A" or comma-separated letters such as A,B to restrict the selection. The row limit still applies; this is not a promise to export the entire directory.

Catalog

Select catalog and enter product text in query. Catalog rows are returned even when includeProducts is off.

Taxonomy

Select taxonomy for category-tree rows. Use headingSlug to select a subtree. This mode can return no rows when category-tree data is unavailable; use browse for category navigation instead.

Suggest

Select suggest, supply query, and choose suggestType. POPULAR needs no query. Suggestions help choose search terms; they are not full supplier profiles.

Filters

Select filters to list filter references, optionally scoped by headingId. These references do not guarantee that filterIds restrict public supplier search results.

What to fill in

FieldWhat to enterDefault
modeAutomatic selection or one of the modes aboveauto
queryKeyword; category slug for browse; letters for enumerateEmpty-input example: cnc machining
searchQueriesList of supplier or catalog keywordsEmpty
startUrlsThomasnet search, heading, or company URLsEmpty
companyUrlOne company profile URLEmpty
detailUrlsList of company profile URLsEmpty
tgramsIdNumeric company IDEmpty
companySlugOptional company URL slugEmpty
headingIdNumeric heading IDEmpty
headingSlugHeading or category slugEmpty
maxResultsMaximum rows per input, from 1 to 50070; form example 3
marketOnly usausa
suggestTypeCategory, brand, product, CAD, company, location, autocomplete, or popular suggestionsHEADINGS_FAMILY
zipSearch ZIP codeEmpty
radiusRadius in miles, as a string, with zipEmpty
filterIdsReference IDs; not reliable search restrictionsEmpty
maxPagesCatalog and enumerate page limit; 1 follows the requested row count1
enrichDetailsAdd profile information to supplier liststrue
includeProductsAdd supplier products as billed rowsfalse
includeStreetInclude street and unit detailstrue
redactPhonesMask primaryPhone only, not phonesfalse
useSeedPoolPrefer saved directory entries when availablefalse
fieldsOutput field names; omit for the normal outputEmpty
locationCompatibility field; ignored, use zip and radiusEmpty
transactionTypeCompatibility field; ignoredEmpty

Supplier search

{"query":"precision castings","maxResults":3}

Heading

{"headingId":"45330503","maxResults":3}

Company

{"companyUrl":"https://www.thomasnet.com/company/electro-plastics-30989688/profile","maxResults":1}

Browse

{"mode":"browse","query":"","maxResults":3}

Enumerate

{"mode":"enumerate","query":"A","maxResults":3}

Catalog

{"mode":"catalog","query":"valves","maxResults":3}

Taxonomy

{"mode":"taxonomy","maxResults":3}

Suggest

{"mode":"suggest","query":"valves","suggestType":"HEADINGS_FAMILY","maxResults":3}

Filters

{"mode":"filters","headingId":"45330503","maxResults":3}
  • maxItems and limit are aliases for maxResults.
  • Close field-name misspellings are corrected; other unknown fields are ignored with a note. Unrecognized optional filters can be ignored rather than stopping the run.
  • Invalid targets, such as a company URL from another website, fail with INVALID_INPUT: <field> — <how to fix> before rows are charged. A start event may still be charged.
  • INPUT_REPORT in the default key-value store records how input was interpreted. INPUT_ECHO shows the normalized settings.

Output example

Illustrative supplier row with placeholder contact details, not a newly collected record:

{
"rowType": "supplier",
"recordType": "supplier",
"id": "123456",
"supplierId": "123456",
"tgramsId": "123456",
"name": "Example Manufacturing",
"profileUrl": "https://www.thomasnet.com/company/example-manufacturing-123456/profile",
"website": "https://example.com",
"primaryPhone": "+1 555 0100",
"phones": [{"value": "+1 555 0100"}],
"emails": [],
"address": {"street": "123 Example Street", "locality": "Cleveland", "region": "OH", "postalCode": "44114", "country": "USA"},
"person": {"name": "Jane Doe", "role": "Sales Manager"},
"leadAbsences": {"emails": "本站无"},
"source": "thomasnet.com"
}

You can export the dataset as JSON, CSV, Excel, XML, RSS, or an HTML table. leadAbsences explains missing contact information: 本站无 means not available on the site. Published social URLs are kept; account names are not expanded into guessed links.

Why use this Thomasnet scraper?

  • Pay for delivered rows. Row charges apply to dataset rows, not attempted pages; the start fee is separate.
  • Keep source identifiers. Company and heading IDs support matching across runs.
  • Combine inputs. Search several keywords or supply several profile URLs in one run.
  • Inspect missing data. Missing contact values stay empty rather than being invented.
  • Read failure information. Failed runs can write ERROR_SUMMARY; completed runs write RUN_SUMMARY.
  • No proxy setup. You do not need to set up proxies.

Rows already written remain in the dataset. Do not assume that an interrupted run delivers information that had not yet been written.

How much does it cost to scrape Thomasnet?

The Actor uses pay-per-event pricing. The start event is $0.005, charged once per GB of allocated memory, with a minimum of one event. At the default 512 MB, one start costs $0.005. Platform usage is included in these prices.

Apify planPrice per rowPrice per 1,000 rows
Free$0.003$3.00
Starter$0.003$3.00
Scale$0.0026$2.60
Business$0.0022$2.20
  • maxResults applies to each input. The default is 70; larger requests are collected in parts of up to 70, subject to source limits.
  • Supplier and optional product rows share the same input limit. Categories, headings, suggestions, and filter references are also billed rows.
  • Free Apify plan runs stop at 200 rows in total, with a developer-set allowance of 10 runs of this Actor. Paid plans remove this run allowance, not prices or input limits.
  • Set Maximum cost per run (maxTotalChargeUsd in the API) to cap the whole run's charges. Collection stops when the available allowance is exhausted.

Example: three keywords delivering five rows each give 15 rows. On the Free plan at 512 MB, the cost is 15 × $0.003 + $0.005 = $0.050.

Use with AI agents and the API

Apify MCP server (Claude, ChatGPT, Cursor, VS Code)

Add the Actor to an MCP client that supports remote servers:

https://mcp.apify.com?tools=lentic_clockss/thomasnet-scraper

Sign in with Apify through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; the agent then reads rows with get-dataset-items.

Clients without remote MCP support can use npx @apify/actors-mcp-server --tools lentic_clockss/thomasnet-scraper with APIFY_TOKEN set.

Example prompt: "Find three Thomasnet suppliers for precision castings. Return their names, profile URLs, and published websites."

Apify API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lentic_clockss/thomasnet-scraper").call(
run_input={"query": "precision castings", "maxResults": 3}
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lentic_clockss/thomasnet-scraper').call({
query: 'precision castings', maxResults: 3
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Over HTTP, send the input as JSON to POST https://api.apify.com/v2/acts/lentic_clockss~thomasnet-scraper/runs with an Authorization: Bearer <YOUR_APIFY_TOKEN> header. After completion, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.

Integrations

Use the Integrations tab to connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable, or your own webhook. Use Apify Schedules for recurring runs.

FAQ

This Actor collects publicly accessible data. You are responsible for complying with Thomasnet's terms and applicable data protection law. Personal data requires a lawful basis; public visibility alone is not permission for every use.

Why did my run end as ABORTED?

Check whether the run was manually or programmatically stopped, then inspect its status message and logs. This Actor does not automatically pause and resume a run. Do not treat ABORTED as a promise that results will arrive later.

How many results can I get?

Request 1–500 rows per input. Public keyword searches expose up to 25 suppliers per keyword, and heading lists up to 50. Catalog and company-directory modes support pagination, but all modes remain subject to available data, the cost cap, and Free-plan limits.

Why are some fields empty?

Thomasnet does not publish every field for every supplier. emails stays empty in the supported public records; personnel and social links are optional. Category and heading rows are not company contact records.

Does this contact suppliers or sign in?

No. The Actor does not log in or submit Contact Supplier, Claim, or registration forms. It is an unofficial data-collection tool, not a Thomasnet service.

Does phone redaction remove all phone data?

No. redactPhones: true masks only primaryPhone; phones remains readable. includeStreet: false removes street and unit details, including the combined full address.

Can I filter by city or transaction type?

location and transactionType are ignored compatibility fields. Use zip with radius for geographic keyword searches. Do not rely on filterIds to restrict public search results.

Why is a taxonomy run empty?

Category-tree data may be unavailable, or the selected subtree may have no matching entries. Try browse with query: "" for root categories, then follow a returned slug.

Limitations

  • Only the usa market is supported. No private account data, submitted inquiries, or authenticated supplier information is collected.
  • A higher row limit does not extend the 25-supplier keyword or 50-supplier heading limits.
  • maxPages controls catalog and enumerate pagination, not every mode.
  • Taxonomy availability and the number of suggestions depend on available source data.
  • productCount can be absent when a complete product list was not collected; absence does not mean zero products.
  • Requesting fewer fields does not guarantee profile enrichment is disabled. Set enrichDetails explicitly when appropriate.
  • A stopped or timed-out run is not guaranteed to deliver unfinished results.

More B2B supplier and wholesale marketplace scrapers from the same publisher:

Browse all of our scrapers at apify.com/lentic_clockss.

Support

Found a problem or need another field? Open an issue in the Issues tab of this Actor's page and include the run ID and the input you used.