
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
3 monthly users

Scrape ThomasNet supplier search results and profiles: phone, website, address, revenue range, employees, year founded, certifications, personnel, brands and products. Search by product, service or company name and region. Optional emails from supplier websites.
Turn any ThomasNet supplier search into a clean lead list. Search by product, service or company name, narrow it to a US state or Canadian province, and get every supplier with phone, website, address, revenue range, employee count, year founded, certifications, named personnel, brands and products. No ThomasNet account needed, and a typical search of 20 suppliers finishes in a few seconds.
excludeIds and they are skipped and not charged.valve or CNC machining). ThomasNet search URLs work too.To scrape specific suppliers, paste their ThomasNet profile URLs or IDs into Supplier profile URLs or IDs.
| Field | Description | Default |
|---|---|---|
searchQueries | Products, services or company names, or ThomasNet search URLs | – |
mode | all (product or service) or name (company name) | all |
maxResults | Maximum suppliers across all terms; 0 = all that ThomasNet shows | 20 |
supplierUrls | Supplier profile URLs or ThomasNet IDs (tgramsId) | – |
area | US state or Canadian province code (IL, NT, CS, ...; plain TX, CA, NY also work through the API) | NA (all) |
zipCode, radiusMiles | Suppliers near a 5-digit US ZIP code | – , 50 |
expandSearch | Go past ThomasNet's first 25 results per search | true |
includeEmails | Add emails published on each supplier's website | false |
includeFamilies | Add the supplier's product family list | false |
includeLocations | Add branch locations of multi-location suppliers | false |
excludeIds | ThomasNet IDs to skip (not charged) | – |
{
"searchQueries": ["CNC machining"],
"mode": "all",
"area": "IL",
"maxResults": 200,
"includeEmails": true
}
One row per supplier.
| Field | Description |
|---|---|
tgramsId, name, profileUrl | ThomasNet ID, company name and profile link |
typeLabel, otherActivityLabels | Manufacturer, Distributor, Custom Manufacturer, Service Company, ... |
primaryPhone, website, emails | Contact details (emails only with includeEmails) |
address, fullAddress | Street, city, state, ZIP, country, latitude, longitude |
annualSales, numberEmployees, yearFounded | Company size and age as ThomasNet reports them |
personnel | Named contacts with job titles |
certifications, certificationNames, certificationTotals | Quality, diversity and registration certificates with scope and document links |
capabilities | Materials and industries served |
brands, products, videos, news, additionalInformation | Catalog and media content |
heading, headings, otherHeadings | ThomasNet categories the supplier is listed under |
isClaimed, isAdvertiser, isTopResponder, xometryVerified, tier | Profile status flags |
families, locations, locationCount | With includeFamilies / includeLocations |
searchQuery, searchArea, searchRank, distanceMiles, scrapedAt | Which search found the supplier, its position, distance from your ZIP code (ZIP searches only), and when |
Example (trimmed, contact name changed):
{
"tgramsId": "567647",
"name": "Magnatrol Valve Corp.",
"profileUrl": "https://www.thomasnet.com/company/magnatrol-valve-corp-567647/profile",
"typeLabel": "Manufacturer",
"otherActivityLabels": ["Custom Manufacturer"],
"tier": "VERIFIED",
"primaryPhone": "(866) 695-2531",
"website": "https://www.magnatrol.com/",
"fullAddress": "67 Fifth Ave., Hawthorne, NJ 07507, USA",
"address": {"city": "Hawthorne", "state": "NJ", "zip": "07507", "country": "USA", "latitude": 40.94959729, "longitude": -74.1548383},
"annualSales": "$5 - 9.9 Mil",
"numberEmployees": "10-49",
"yearFounded": "1936",
"personnel": [{"name": "Jane Example", "title": "Product Manager"}],
"certificationNames": ["ISO 9001:2015", "Small Business Enterprise (SBE)", "Made in the USA"],
"capabilities": [{"type": "INDUSTRY", "names": ["Marine", "Military", "Oil, Gas, Petroleum", "Pharmaceutical"]}],
"brands": ["Magnatrol"],
"products": [{"name": "Bronze Solenoid Valves", "type": "CATEGORY"}],
"searchQuery": "valve",
"searchRank": 1,
"scrapedAt": "2026-10-16T01:20:00Z"
}
includeEmails is on and at least one email is found.Is it legal to scrape ThomasNet? The actor collects only business information that ThomasNet shows publicly to every visitor. Personnel names are business contacts published by the suppliers themselves. Check the rules that apply to your use, for example privacy and email marketing laws.
Do I need a ThomasNet account or my own proxy? No. The default datacenter proxy works well.
How many suppliers can I get? Each search on ThomasNet shows visitors without an account its first 25 suppliers. With expandSearch on, the actor repeats the search for every region and around ZIP codes and merges the results without duplicates. In our tests valve (about 4,700 listed) returned 1,613 suppliers and CNC machining in Texas returned 400 when we asked for 400. Narrow terms return everything ThomasNet lists.
Why is a field empty? Suppliers fill their own profiles, so revenue, personnel, certifications or a logo are missing for some companies. Empty fields are returned as null or an empty list.
Can I schedule it or use the API? Yes. Schedule runs, call it from the API, and use excludeIds to collect only new suppliers on each refresh.
valve).mode: name) is expanded by region only.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch terms
Products, services or company names to search on ThomasNet, for example "valve", "CNC machining" or "ISO 9001 injection molding". ThomasNet search and category URLs work too. Each term runs its own supplier search.
modeenumOptionaldefault "all"Search by
Product or service finds suppliers that offer what you typed. Company name matches the words against supplier names.
maxResultsintegerOptionaldefault 20Max suppliers
Maximum number of suppliers to save across all search terms and URLs. 0 means as many as ThomasNet shows.
supplierUrlsarrayOptionalSupplier profile URLs or IDs
ThomasNet supplier profiles to scrape directly, such as https://www.thomasnet.com/company/magnatrol-valve-corp-567647/profile, or bare ThomasNet IDs (tgramsId) such as 567647.
areaenumOptionaldefault "NA"Region
Only suppliers that serve this US state or Canadian province. Large states are split the way ThomasNet splits them (for example Texas - North and Texas - South). Through the API you may also pass a plain state code such as TX or CA.
zipCodestringOptionalNear ZIP code
Optional 5-digit US ZIP code: return the suppliers ThomasNet lists near it (up to 25 per search term).
radiusMilesintegerOptionaldefault 50Radius (miles)
Distance around the ZIP code. Only used together with a ZIP code.
expandSearchbooleanOptionaldefault trueGo past the first 25 results
ThomasNet shows visitors without an account only the first 25 suppliers of a search. When this is on, the actor repeats the search region by region and around ZIP codes to collect many more suppliers (for broad terms usually several hundred to a few thousand).
includeEmailsbooleanOptionaldefault falseInclude emails from supplier websites
Visit each supplier's own website (home page and contact/about pages) and add the email addresses it publishes. Charged only for suppliers where at least one email is found.
includeFamiliesbooleanOptionaldefault falseInclude product families
Add the supplier's product family list (every product line it serves on ThomasNet). No extra charge.
includeLocationsbooleanOptionaldefault falseInclude branch locations
For suppliers with several locations, add every branch with its address, phone and location type. No extra charge.
excludeIdsarrayOptionalSkip these supplier IDs
tgramsId values you already have. These suppliers are left out and never charged.
proxyobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for ThomasNet. Residential exits are pinned to the US unless you choose a country.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| name | any | Company |
| tgramsId | any | ThomasNet ID |
| profileUrl | any | Profile |
| typeLabel | any | Company type |
| primaryPhone | any | Phone |
| website | any | Website |
| emails | any | Emails |
| fullAddress | any | Address |
| address.city | any | City |
| address.state | any | State |
| address.zip | any | ZIP |
| annualSales | any | Annual sales |
| numberEmployees | any | Employees |
| yearFounded | any | Founded |
| certificationNames | any | Certifications |
| personnel | any | Personnel |
| brands | any | Brands |
| heading.name | any | Category |
| description | any | Description |
| searchQuery | any | Search term |
| searchArea | any | Region |
| searchRank | any | Rank |
| scrapedAt | any | Scraped at |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Supplier | One supplier saved to the dataset with its full ThomasNet profile. | $0.004 |
| Supplier with website email | A supplier for which at least one email was found on its own website. Only when Include emails is on. | $0.002 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/thomasnet-scraper').call({
"searchQueries": [
"valve"
],
"maxResults": 20,
"supplierUrls": [],
"excludeIds": [],
"proxy": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/thomasnet-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/thomasnet-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
North American suppliers for a product with contact emails.
Suppliers in one state for a search term.
A supplier's profile with locations and product families.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.