# Thomasnet — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Find industrial suppliers and access their detailed business profiles including company information, revenue data, and certifications from ThomasNet's comprehensive directory. Search for specific suppliers or retrieve bulk leads to build targeted lists of manufacturers and distributors for your sourcing needs.

**Category:** Business Directories | **Website:** [thomasnet.com/](https://thomasnet.com/) | **Docs:** [parse.bot/marketplace/72c679ee-3162-424a-9db3-aeb0efefe2ca/thomasnet-com-api](https://parse.bot/marketplace/72c679ee-3162-424a-9db3-aeb0efefe2ca/thomasnet-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-thomasnet-com-api-72c679ee/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_bulk_leads

Extract supplier leads for a given search query. Returns a flat list of lead summaries with contact info, revenue, full address with coordinates, distance, profile_url, and heading_brands. When include_profile is true, each lead is enriched with certifications and key_personnel by fetching the supplier profile page server-side (adds ~0.5s per lead). Introduces a 1-second delay between page requests and retries once on transient upstream failures. Note: the upstream does not support server-side pagination so multiple pages may return the same result set.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `include_profile` | boolean | No | When true, enriches each lead with certifications (array of certification name strings) and key_personnel (array of objects with name and title) by fetching each supplier's profile page. Adds latency proportional to result count. |
| `location` | string | No | Location filter. Accepts a 5-digit US ZIP code (e.g. '60601') to enable geographic filtering. |
| `max_pages` | integer | No | Maximum number of pages to request from upstream. |
| `query` | string | Yes | Search keyword (e.g. 'plastic injection molding'). |
| `radius` | integer | No | Search radius in miles. Only applies when a valid ZIP is provided in location. Accepted values: 10, 25, 50, 100. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-thomasnet-com-api-72c679ee/get_bulk_leads \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"include_profile":"<boolean>","location":"<string>","max_pages":"<integer>","query":"<string>","radius":"<integer>"}'
```

### get_supplier_profile

Get detailed supplier profile information including contact details, full address, revenue, certifications, and business type. Accepts a full profile URL or path starting with '/profile/'. The profile_url is available from search_suppliers results[*].profile_url.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `profile_url` | string | Yes | Full profile URL (e.g. 'https://www.thomasnet.com/profile/436170/company.html') or path starting with '/profile/'. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-thomasnet-com-api-72c679ee/get_supplier_profile \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profile_url":"<string>"}'
```

### search_suppliers

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.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `certifications` | string | No | 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. |
| `location` | string | No | 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. |
| `page` | integer | No | Page number sent to upstream. Note: the upstream currently returns the same result set regardless of page value. |
| `query` | string | Yes | Search keyword or category (e.g. 'metal fabrication', 'plastic injection molding'). |
| `radius` | integer | No | Search radius in miles from the ZIP code. Only applies when a valid ZIP is provided in location. Accepted values: 10, 25, 50, 100. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-thomasnet-com-api-72c679ee/search_suppliers \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"certifications":"<string>","location":"<string>","page":"<integer>","query":"<string>","radius":"<integer>"}'
```
