ThomasNet APIthomasnet.com ↗
Search ThomasNet's industrial supplier directory via API. Get company profiles, revenue ranges, certifications, and bulk lead lists for manufacturers and distributors.
What is the ThomasNet API?
The ThomasNet API gives programmatic access to the ThomasNet industrial supplier directory across 3 endpoints. Use search_suppliers to query by keyword and location and get back paginated supplier summaries — including annual sales, employee count, year founded, and phone — or use get_supplier_profile to pull full company detail by profile URL, or get_bulk_leads to collect flat lead lists across multiple pages in a single call.
curl -X GET 'https://api.parse.bot/scraper/3eee7814-a3b8-4263-ab86-caf00068b4f4/search_suppliers?page=1&query=metal+fabrication&radius=10&location=Illinois' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for industrial suppliers by keyword and optional ZIP-code location with radius. Returns results from the ThomasNet directory with company summary info including contact details, revenue, full address with coordinates, and distance. Each result includes a profile_url for fetching full details via get_supplier_profile. Location filtering requires a 5-digit US ZIP code; non-ZIP location strings (city/state names) are accepted but will not filter results geographically. The upstream does not support server-side page advancement; the page parameter is sent but the server returns the same initial result set regardless of page number.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number sent to upstream. Note: the upstream currently returns the same result set regardless of page value. |
| queryrequired | string | Search keyword or category (e.g. 'metal fabrication', 'plastic injection molding'). |
| radius | integer | Search radius in miles from the ZIP code. Only applies when a valid ZIP is provided in location. Accepted values: 10, 25, 50, 100. |
| location | string | Location filter. Accepts a 5-digit US ZIP code (e.g. '60601') to enable geographic filtering. City/state strings are accepted but only ZIP codes activate upstream location filtering. |
| certifications | string | Comma-separated certification filter IDs to narrow results (e.g. '14' for AS9100, '157' for ISO 9001:2015, '176' for ISO 13485:2016, '181' for IATF 16949:2016). IDs correspond to ThomasNet certification facet values. |
{
"type": "object",
"fields": {
"page": "integer, page number requested",
"count": "integer, total number of matching suppliers for the filtered query",
"query": "string, the search query used",
"results": "array of supplier objects with tgrams_id, name, phone, location, annual_sales, employee_count, year_founded, website, profile_url, address (object with address1, city, state, zip, country, latitude, longitude), distance, is_advertiser, heading_brands",
"location": "string, location filter applied"
},
"sample": {
"data": {
"page": 1,
"count": 23398,
"query": "metal fabrication",
"results": [
{
"name": "Chicago Metal Fabricators",
"phone": "+1 (555) 012-3456",
"website": "https://chicagometal.com/",
"location": "Chicago, IL",
"tgrams_id": "436170",
"profile_url": "https://www.thomasnet.com/profile/436170/company.html",
"annual_sales": "$25 - 49.9 Mil",
"year_founded": "1908",
"employee_count": "50-99"
}
],
"location": "Illinois"
},
"status": "success"
}
}About the ThomasNet API
Search and Profile Endpoints
The search_suppliers endpoint accepts a required query string (e.g. 'metal fabrication' or 'plastic injection molding') and an optional location filter — city, state, or ZIP code. Results are paginated via the page parameter. Each item in the results array contains a tgrams_id, name, phone, location, annual_sales, employee_count, year_founded, website, and a prof field linking to the full profile. The response also surfaces count — the total number of matching suppliers for that query.
Detailed Company Profiles
The get_supplier_profile endpoint accepts a full ThomasNet profile URL or path and returns a richer record: address (broken into address1, city, state, zip, country), description, logo_url, annual_sales, year_founded, business_type, and the tgrams_id that ties back to search results. This is the endpoint to use when you need structured address data or the company description field rather than just summary info.
Bulk Lead Extraction
The get_bulk_leads endpoint wraps the search functionality to iterate automatically across pages. Pass a query string and optionally cap the run with max_pages. The response is a flat leads array — each entry has tgrams_id, name, phone, location, annual_sales, and website — along with a total count. This makes it practical to build targeted supplier lists without manually stepping through pagination.
The ThomasNet API is a managed, monitored endpoint for thomasnet.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when thomasnet.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official thomasnet.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a supplier shortlist for a specific manufacturing category using
search_supplierswith keyword and state filters - Enrich a CRM with structured address, phone, and annual sales data pulled from
get_supplier_profile - Generate bulk outreach lists of manufacturers by running
get_bulk_leadsacross multiple query categories - Track year-founded and employee-count trends across a set of suppliers in a given industry vertical
- Cross-reference
tgrams_idvalues from search results with profile records to deduplicate supplier databases - Filter potential vendors by business type using the
business_typefield returned in full profiles - Identify sourcing alternatives by running keyword queries for specific fabrication processes and comparing
annual_salesranges
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ThomasNet have an official developer API?+
What does `get_supplier_profile` return beyond what `search_suppliers` includes?+
address object (address1, city, state, zip, country), a description field, logo_url, and business_type. The search endpoint returns summary fields only — no description, no broken-out address components.Does the API return supplier certifications such as ISO or AS9100?+
How does pagination work across the endpoints?+
search_suppliers endpoint takes an integer page parameter and returns a count of total matches, so you can calculate total pages client-side. The get_bulk_leads endpoint handles pagination internally up to the max_pages limit you supply, returning a single flat leads array.