# 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 for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/thomasnet/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## 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/credits/thomasnet/get-bulk-leads \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/thomasnet/get-supplier-profile \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/thomasnet/search-suppliers \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"certifications":"<string>","location":"<string>","page":"<integer>","query":"<string>","radius":"<integer>"}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.