# ThomasNet Scraper $1💰 Suppliers, Manufacturers & Contacts (`abotapi/thomasnet-supplier-scraper`) Actor

Scrape ThomasNet supplier and manufacturer directory. Search by keyword, category, location, certification or company type, or paste profile URLs. One rich record per company: contacts, certifications, products, locations, geo, social, sales and more.

- **URL**: https://apify.com/abotapi/thomasnet-supplier-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Lead generation, Jobs, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 supplier results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## ThomasNet Supplier Scraper

Extract suppliers, manufacturers, distributors and service providers from the ThomasNet industrial directory at scale. Search by keyword, product category, location, certification or company type, or paste profile URLs, and get one rich, structured record per company: full contact details, certifications, products, locations, geo coordinates, social links, annual sales, headcount and more. It runs on any Apify plan.

### Why This Scraper?

- One rich record per company, merging the directory listing with the full company profile.
- Captures contacts (personnel with title, and email/phone where the company publishes them), certifications, products, locations, geo coordinates and social links.
- Dual mode: keyword/category search with filters, or scrape specific company-profile and search URLs.
- Filter by US state or province, ZIP plus radius, certification, and company type, with name sorting.
- Concurrent per-company enrichment with per-record output, so partial results survive interruptions.
- Stable output schema: every documented field is always present (null when a company does not publish it).
- Optional one-click export to Notion, Linear, Airtable or Apify via MCP connectors.

### Data You Get

> Sample shape - values are illustrative placeholders, not from a live listing.

| Field | Example |
| --- | --- |
| name | `Acme Valve Corp.` |
| tgramsId | `00000000` |
| tier | `VERIFIED` |
| type | `M` |
| primaryPhone | `+1 000-000-0000` |
| website | `https://example.com/` |
| annualSales | `$10 - 24.9 Mil` |
| numberEmployees | `10-49` |
| yearFounded | `1971` |
| heading | `{ "headingId": "00000000", "name": "Valves" }` |
| address | `{ "city": "Anytown", "state": "OH", "latitude": 0.0, "longitude": 0.0 }` |
| personnel | `[ { "name": "Jane Doe", "title": "Owner", "email": null, "phone": null } ]` |
| certifications | `[ "ISO 9001" ]` |
| certificationTotals | `[ { "type": "DIVERSITY", "count": 3 } ]` |
| families | `[ { "id": "000000", "name": "Valves" } ]` |
| products | `[ { "id": "0000.0000", "type": "CATEGORY" } ]` |
| social | `[ { "accountId": "the-lee-company", "type": "LINKEDIN" } ]` |
| logoUrl | `https://example.com/logo.jpg` |
| description | `Manufacturer of ball, check and gate valves.` |
| url | `https://www.thomasnet.com/company/acme-valve-corp-00000000/profile` |
| scrapedAt | `2026-01-01T00:00:00+00:00` |

### How to Use

Basic keyword search with full profiles:

```json
{
  "mode": "search",
  "queries": ["valves", "industrial pumps"],
  "fetchDetails": true,
  "maxItems": 20,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
````

Filtered search (manufacturers in Ohio, sorted by name):

```json
{
  "mode": "search",
  "queries": ["cnc machining"],
  "state": "OH",
  "companyType": "M",
  "sortBy": "company_az",
  "maxItems": 20,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

Scrape specific company profiles:

```json
{
  "mode": "url",
  "urls": [
    "https://www.thomasnet.com/company/acme-valve-corp-00000000/profile"
  ],
  "fetchDetails": true,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### Input Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| mode | select | `search` (keyword/category) or `url` (scrape pasted URLs). Required. |
| queries | array | Search mode. One or more keywords or product categories. |
| state | string | Search mode. Two-letter US state or province code to narrow by location. |
| zip | string | Search mode. ZIP / postal code to center a radius search. |
| radius | integer | Search mode. Distance in miles around the ZIP. |
| certification | string | Search mode. Restrict to suppliers holding a certification, e.g. `ISO 9001`. |
| companyType | select | Search mode. Filter by supplier type (manufacturer, distributor, etc.). |
| sortBy | select | Search mode. Result order: relevance or company name A-Z / Z-A. |
| urls | array | URL mode. Company-profile or search URLs to scrape. Filters are ignored. |
| fetchDetails | boolean | Enrich each company with its full profile. Default true. |
| maxPages | integer | Safety ceiling on pages per search. Empty / 0 = unlimited. Does not cap items. |
| maxItems | integer | Maximum companies to collect across the whole run. Default 20. 0 = unlimited. |
| proxy | object | Proxy settings. Residential is required for this source; the default enables it. |
| mcpConnectors | array | Optional. MCP connectors (Notion, Linear, Airtable, Apify) to export results. |
| notionParentPageUrl | string | Optional. Notion page under which a results database is created. |
| maxNotifyListings | integer | Optional. Cap on how many companies are pushed to connected MCP apps. |

#### Export to your apps (MCP)

Connect one or more MCP servers in the `mcpConnectors` field to push the scraped companies straight into your own tools after the run finishes. Supported servers include Notion, Linear, Airtable and Apify. For Notion, set `notionParentPageUrl` to the page under which a results database should be created, and use `maxNotifyListings` to cap how many companies are exported. Export is a side-channel: it never changes the dataset and never fails the run.

### Output Example

> Sample shape - values are illustrative placeholders, not from a live listing.

```json
{
  "name": "Acme Valve Corp.",
  "tgramsId": "00000000",
  "tier": "VERIFIED",
  "type": "M",
  "primaryPhone": "+1 000-000-0000",
  "website": "https://example.com/",
  "annualSales": "$10 - 24.9 Mil",
  "numberEmployees": "10-49",
  "yearFounded": "1971",
  "description": "Manufacturer of ball, check, gate and butterfly valves.",
  "heading": { "headingId": "00000000", "name": "Valves" },
  "headings": [{ "headingId": "00000000", "name": "Valves", "familyName": "Flow Control" }],
  "families": [{ "id": "000000", "name": "Valves" }],
  "products": [{ "id": "0000.0000", "type": "CATEGORY" }],
  "certifications": ["ISO 9001"],
  "certificationTotals": [{ "type": "DIVERSITY", "count": 3 }],
  "personnel": [{ "name": "Jane Doe", "title": "Owner", "email": null, "phone": null }],
  "address": {
    "address1": "1 Example Way",
    "city": "Anytown",
    "state": "OH",
    "stateName": "Ohio",
    "zip": "00000",
    "country": "USA",
    "latitude": 0.0,
    "longitude": 0.0
  },
  "city": "Anytown",
  "stateCode": "OH",
  "latitude": 0.0,
  "longitude": 0.0,
  "social": [ { "accountId": "the-lee-company", "type": "LINKEDIN" } ],
  "logoUrl": "https://example.com/logo.jpg",
  "isClaimed": true,
  "isAdvertiser": false,
  "xometryVerified": false,
  "url": "https://www.thomasnet.com/company/acme-valve-corp-00000000/profile",
  "sourceUrl": "https://www.thomasnet.com/company/acme-valve-corp-00000000/profile",
  "slug": "acme-valve-corp-00000000",
  "searchMode": "search",
  "scrapedAt": "2026-01-01T00:00:00+00:00"
}
```

### Plan Requirement

This source serves data only to residential IP addresses, so the actor uses Apify Proxy with the residential group by default. Apify Proxy is available on every paid plan and on the free trial. On the free tier without residential access the run will warn and fall back to a backup connection where possible. For best throughput and reliability, enable Apify Proxy with residential access.

# Actor input Schema

## `mode` (type: `string`):

Choose how to find companies. 'search' runs keyword/category searches with filters. 'url' scrapes the company-profile or search URLs you paste.

## `queries` (type: `array`):

One or more keywords or product categories to search, e.g. 'valves', 'cnc machining', 'industrial pumps'. Each term is searched independently.

## `state` (type: `string`):

Two-letter US state or Canadian province code to narrow the search by location, e.g. 'OH', 'CA', 'TX'. Leave empty for a North-America-wide search.

## `zip` (type: `string`):

ZIP or postal code to center a radius search, e.g. '44023'. Use together with Radius.

## `radius` (type: `integer`):

Distance in miles around the ZIP / postal code to include. Only applies when a ZIP is set.

## `certification` (type: `string`):

Restrict results to suppliers holding a certification, e.g. 'ISO 9001', 'Woman Owned', 'AS9100'. Matched against the supplier-validation and quality-certification facets.

## `companyType` (type: `string`):

Filter by the type of supplier.

## `sortBy` (type: `string`):

Order of the results returned by the search.

## `urls` (type: `array`):

Multi-URL mode: paste ThomasNet company-profile URLs (e.g. https://www.thomasnet.com/company/acme-corp-12345/profile) or search URLs. Filter fields are ignored; pagination walks forward where the site allows it.

## `fetchDetails` (type: `boolean`):

When on, each company is enriched with its full profile (personnel, certifications, locations, social links, products, news, geo coordinates). When off, only the rich search-result fields are returned (faster, no per-company fetch).

## `maxPages` (type: `integer`):

Safety ceiling on how many result pages to walk per search. Empty or 0 means unlimited. This does NOT cap the number of items; the run still stops at Max items. (Note: anonymous access to this source returns one page of results per search.)

## `maxItems` (type: `integer`):

Maximum number of companies to collect across the whole run. The single overall limit. Set 0 for unlimited.

## `proxy` (type: `object`):

Connection settings. This source requires residential IPs; the default enables Apify Proxy, which works on every plan. Datacenter-only proxies are not sufficient.

## `mcpConnectors` (type: `array`):

Optional. Connect MCP servers (Notion, Linear, Airtable, Apify) to push the scraped companies straight into your tools after the run.

## `notionParentPageUrl` (type: `string`):

Optional. When a Notion MCP connector is set, the URL of the Notion page under which a results database is created.

## `maxNotifyListings` (type: `integer`):

Optional. Cap on how many companies are pushed to the connected MCP apps.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "valves"
  ],
  "companyType": "",
  "sortBy": "relevance",
  "urls": [
    "https://www.thomasnet.com/company/valve-parts-usa-ltd-30875713/profile"
  ],
  "fetchDetails": true,
  "maxItems": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "valves"
    ],
    "urls": [
        "https://www.thomasnet.com/company/valve-parts-usa-ltd-30875713/profile"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/thomasnet-supplier-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["valves"],
    "urls": ["https://www.thomasnet.com/company/valve-parts-usa-ltd-30875713/profile"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/thomasnet-supplier-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "valves"
  ],
  "urls": [
    "https://www.thomasnet.com/company/valve-parts-usa-ltd-30875713/profile"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call abotapi/thomasnet-supplier-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=abotapi/thomasnet-supplier-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ThomasNet Scraper $1💰 Suppliers, Manufacturers & Contacts",
        "description": "Scrape ThomasNet supplier and manufacturer directory. Search by keyword, category, location, certification or company type, or paste profile URLs. One rich record per company: contacts, certifications, products, locations, geo, social, sales and more.",
        "version": "1.0",
        "x-build-id": "tAXyX7ifxFPh2CnWi"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~thomasnet-supplier-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-thomasnet-supplier-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/abotapi~thomasnet-supplier-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-thomasnet-supplier-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/abotapi~thomasnet-supplier-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-thomasnet-supplier-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "Choose how to find companies. 'search' runs keyword/category searches with filters. 'url' scrapes the company-profile or search URLs you paste.",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Search terms",
                        "type": "array",
                        "description": "One or more keywords or product categories to search, e.g. 'valves', 'cnc machining', 'industrial pumps'. Each term is searched independently.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "state": {
                        "title": "State / region (optional)",
                        "type": "string",
                        "description": "Two-letter US state or Canadian province code to narrow the search by location, e.g. 'OH', 'CA', 'TX'. Leave empty for a North-America-wide search."
                    },
                    "zip": {
                        "title": "ZIP / postal code (optional)",
                        "type": "string",
                        "description": "ZIP or postal code to center a radius search, e.g. '44023'. Use together with Radius."
                    },
                    "radius": {
                        "title": "Radius (miles, optional)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Distance in miles around the ZIP / postal code to include. Only applies when a ZIP is set."
                    },
                    "certification": {
                        "title": "Certification filter (optional)",
                        "type": "string",
                        "description": "Restrict results to suppliers holding a certification, e.g. 'ISO 9001', 'Woman Owned', 'AS9100'. Matched against the supplier-validation and quality-certification facets."
                    },
                    "companyType": {
                        "title": "Company type",
                        "enum": [
                            "",
                            "M",
                            "D",
                            "S",
                            "C",
                            "R"
                        ],
                        "type": "string",
                        "description": "Filter by the type of supplier.",
                        "default": ""
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "relevance",
                            "company_az",
                            "company_za"
                        ],
                        "type": "string",
                        "description": "Order of the results returned by the search.",
                        "default": "relevance"
                    },
                    "urls": {
                        "title": "Company or search URLs",
                        "type": "array",
                        "description": "Multi-URL mode: paste ThomasNet company-profile URLs (e.g. https://www.thomasnet.com/company/acme-corp-12345/profile) or search URLs. Filter fields are ignored; pagination walks forward where the site allows it.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch full company profiles",
                        "type": "boolean",
                        "description": "When on, each company is enriched with its full profile (personnel, certifications, locations, social links, products, news, geo coordinates). When off, only the rich search-result fields are returned (faster, no per-company fetch).",
                        "default": true
                    },
                    "maxPages": {
                        "title": "Max pages per search",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Safety ceiling on how many result pages to walk per search. Empty or 0 means unlimited. This does NOT cap the number of items; the run still stops at Max items. (Note: anonymous access to this source returns one page of results per search.)"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of companies to collect across the whole run. The single overall limit. Set 0 for unlimited.",
                        "default": 20
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Connection settings. This source requires residential IPs; the default enables Apify Proxy, which works on every plan. Datacenter-only proxies are not sufficient.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "mcpConnectors": {
                        "title": "Export to your apps (MCP)",
                        "type": "array",
                        "description": "Optional. Connect MCP servers (Notion, Linear, Airtable, Apify) to push the scraped companies straight into your tools after the run."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page URL",
                        "type": "string",
                        "description": "Optional. When a Notion MCP connector is set, the URL of the Notion page under which a results database is created."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional. Cap on how many companies are pushed to the connected MCP apps."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
