# Industrial Supplier Intelligence | B2B Enrichment (`taroyamada/industrial-supplier-intelligence`) Actor

Enrich user-provided industrial supplier websites into procurement-ready B2B profiles with categories, capabilities, locations, certifications, contact pages, confidence, PPE charged events, and clear no-charge statuses.

- **URL**: https://apify.com/taroyamada/industrial-supplier-intelligence.md
- **Developed by:** [太郎 山田](https://apify.com/taroyamada) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Industrial Supplier Intelligence

Turn user-provided industrial supplier websites into structured B2B supplier profiles for sourcing, procurement, supplier-risk review, and RFQ preparation. This actor is direct-source only: it fetches the supplier URLs and domains you provide and does not use search engines for discovery.

Use it when your team already has a target account list, supplier portal export, trade-show list, ERP vendor list, or shortlist from another workflow and needs consistent supplier facts before a buyer, analyst, or procurement system takes the next step.

### Store Quickstart

Pick the smallest template that matches the buyer workflow:

- **Quickstart - 2 Supplier Websites**: lowest-friction proof run. Enrich two public supplier websites, write dataset rows, and inspect categories, capabilities, certifications, contact pages, confidence, status, and `chargedEvent`.
- **Recurring Supplier Watch**: schedule the same supplier list weekly or monthly. Compare `companyName`, `categories`, `capabilities`, `locations`, `certifications`, `contactPage`, `confidence`, and `status` across runs to catch changed public evidence.
- **Procurement Shortlist Enrichment**: use supplier domains exported from procurement research, ERP, vendor master, or sourcing spreadsheets. Join the output back to your shortlist by `website` or `sourceUrls`.
- **RFQ Vendor Prequalification**: run candidate vendors before an RFQ. Route `success` and useful `partial` rows to a buyer review queue; keep no-charge rows as list-cleanup tasks.

For production, start with dataset output in Apify. Once the row shape is accepted, downstream teams can send charged supplier rows to procurement tools, vendor-master enrichment, CRM/account intelligence, RFQ workspaces, or the public-sector [Procurement Intel Actor](https://apify.com/taroyamada/procurement-intel-actor) when supplier intelligence should sit next to bid and award monitoring.

### What It Does

- Normalizes supplier URLs and bare domains into direct fetch targets.
- Extracts public website signals for company name, industrial category, capabilities, locations, certifications, contact page, and source evidence.
- Uses buyer-provided `keywords` only as local relevance hints against supplied pages. Keywords are not sent to search engines.
- Emits one dataset row per supplied source, including no-charge diagnostic rows for invalid, blocked, not-found, and failed sources.
- Passes custom pay-per-event billing only for useful supplier intelligence rows.

### Runtime And Delivery Guardrails

- Runtime: Node.js 20+ on Apify Actor Node 20.
- `dryRun: true` validates inputs and output shape without dataset writes, webhook delivery, or custom PPE charges.
- Production runs are dataset-first: dataset/PPE output completes before any webhook-style delivery hook is allowed to run.
- Keep webhook handoff disabled until downstream teams accept the dataset schema and no-charge diagnostic rows.

### B2B Use Cases

| Buyer | Workflow | Value |
|-------|----------|-------|
| Procurement teams | Enrich supplier shortlists before RFQ or onboarding | Faster vendor prequalification with consistent public evidence |
| Strategic sourcing | Refresh known supplier lists by category, geography, or certification | Recurring visibility into capability and certification signals |
| RevOps and data teams | Append supplier intelligence to CRM, vendor master, or account datasets | Clean row shape with confidence and billing status for automation |
| Industrial marketplaces | Normalize supplier profile fields from submitted websites | Categories, capabilities, contacts, and evidence URLs for listing review |
| Risk and diligence teams | Preserve blocked, not-found, and invalid rows | Transparent source quality without paying for unusable results |

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `urls` | string[] | `[]` | Specific supplier website URLs to enrich. Use public home, about, capabilities, products, certifications, or contact pages. |
| `domains` | string[] | `[]` | Bare supplier domains. Domains are normalized to `https://domain/` and fetched directly. |
| `keywords` | string[] | `[]` | Industrial terms used only for local scoring and category/capability hints against supplied sources. |
| `region` | string | `""` | Optional buyer region or sourcing market, used as a location and relevance hint. |
| `maxResults` | integer | `25` | Maximum normalized supplier sources to process and emit. |

Provide at least one value in `urls` or `domains`. V1 intentionally has no search engine discovery, no private portal access, and no authentication.

#### Input Example

```json
{
  "urls": [
    "https://www.parker.com/",
    "https://www.smcusa.com/"
  ],
  "domains": [],
  "keywords": [
    "industrial automation",
    "pneumatics",
    "ISO 9001"
  ],
  "region": "United States",
  "maxResults": 2
}
````

### Output

The Apify dataset receives one row per requested source. Useful rows include supplier profile fields; diagnostic rows make invalid or unavailable sources visible for cleanup.

| Field | Type | Description |
|-------|------|-------------|
| `companyName` | string|null | Supplier name inferred from public page metadata and text. |
| `website` | string|null | Normalized website origin or source URL. |
| `categories` | string\[] | Industrial categories inferred from public text and keyword hints. |
| `capabilities` | string\[] | Capability terms such as CNC machining, assembly, automation, logistics, or private label. |
| `locations` | string\[] | Detected public location strings and optional region hint matches. |
| `certifications` | string\[] | Text-detected certifications such as ISO 9001, ISO 13485, IATF 16949, AS9100, UL, CE, RoHS, or REACH. |
| `contactPage` | string|null | First same-domain contact, RFQ, quote, sales, or inquiry page link found. |
| `sourceUrls` | string\[] | Source URLs used as evidence for the row. |
| `confidence` | number | 0 to 1 score based on profile completeness and keyword evidence. |
| `status` | string | `success`, `partial`, `invalid`, `blocked`, `not_found`, or `error`. |
| `chargedEvent` | string|null | PPE event charged for the row. `null` means diagnostic/no-charge output. |

#### Output Example

```json
{
  "companyName": "Acme Industrial Manufacturing",
  "website": "https://acme.example",
  "categories": ["machining", "metal fabrication"],
  "capabilities": ["CNC machining", "milling", "welding", "assembly"],
  "locations": ["Cleveland, United States"],
  "certifications": ["ISO 9001:2015", "ROHS"],
  "contactPage": "https://acme.example/contact",
  "sourceUrls": ["https://acme.example/"],
  "confidence": 0.9,
  "status": "success",
  "chargedEvent": "supplier_profile_enriched"
}
```

No-charge diagnostic rows stay in the dataset so list owners know which vendor records need repair:

```json
{
  "companyName": null,
  "website": "https://missing-supplier.example/",
  "categories": [],
  "capabilities": [],
  "locations": [],
  "certifications": [],
  "contactPage": null,
  "sourceUrls": ["https://missing-supplier.example/"],
  "confidence": 0,
  "status": "not_found",
  "chargedEvent": null
}
```

### Pricing And No-Charge Rules

This actor is designed for custom pay-per-event pricing. It only charges when the row contains useful supplier intelligence.

| Status | Charged event | Charge | Meaning |
|--------|---------------|--------|---------|
| `success` | `supplier_profile_enriched` | Yes | Profile has enough evidence for analyst or procurement review. |
| `partial` | `supplier_partial` | Yes | Some useful public evidence was found, but the profile is incomplete. |
| `invalid` | `null` | No | Input was empty or could not be normalized into a public URL/domain. |
| `blocked` | `null` | No | Source blocked the request or timed out. |
| `not_found` | `null` | No | Source was missing, non-HTML, or did not contain useful supplier evidence. |
| `error` | `null` | No | Fetch or processing failed. |

Recommended starting PPE pricing:

- `apify-actor-start`: `$0.001`
- `supplier_profile_enriched`: `$0.04`
- `supplier_partial`: `$0.015`

When custom PPE is configured, omit the default dataset item event. The actor passes `chargedEvent` explicitly for charged rows and leaves no-charge rows as `null`.

### Procurement Integration

A practical handoff looks like this:

1. Export supplier domains from ERP, vendor master, procurement research, sourcing spreadsheets, or account lists.
2. Run this actor with dataset delivery and keep `maxResults` aligned with the review batch size.
3. Filter rows where `chargedEvent` is `supplier_profile_enriched` or `supplier_partial`.
4. Send those rows to buyer review, RFQ workspaces, CRM/account enrichment, or vendor onboarding.
5. Keep `invalid`, `blocked`, `not_found`, and `error` rows as no-charge cleanup tasks.
6. For public-sector teams, combine enriched supplier rows with bid and award signals from [Procurement Intel Actor](https://apify.com/taroyamada/procurement-intel-actor).

### API Usage

Run this actor programmatically using the Apify API. Replace `YOUR_API_TOKEN` with your token from [Apify Console -> Settings -> Integrations](https://console.apify.com/account/integrations).

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/taroyamada~industrial-supplier-intelligence/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "urls": ["https://www.parker.com/", "https://www.smcusa.com/"], "keywords": ["industrial automation", "pneumatics", "ISO 9001"], "region": "United States", "maxResults": 2 }'
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/industrial-supplier-intelligence").call(run_input={
    "urls": ["https://www.parker.com/", "https://www.smcusa.com/"],
    "keywords": ["industrial automation", "pneumatics", "ISO 9001"],
    "region": "United States",
    "maxResults": 2,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["website"], item["status"], item["chargedEvent"])
```

#### JavaScript / Node.js

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('taroyamada/industrial-supplier-intelligence').call({
  urls: ['https://www.parker.com/', 'https://www.smcusa.com/'],
  keywords: ['industrial automation', 'pneumatics', 'ISO 9001'],
  region: 'United States',
  maxResults: 2,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((row) => ({ website: row.website, status: row.status, chargedEvent: row.chargedEvent })));
```

### Limits

- No search engine discovery in V1.
- No authentication, paywall bypassing, private portal access, or private supplier data collection.
- Public HTML extraction only; JavaScript-heavy supplier sites may return partial or no-charge statuses.
- Certifications are text-detected and should be verified against source pages before procurement decisions.
- The actor does not decide supplier approval. It creates structured evidence for procurement and analyst review.

### Local Run

```bash
npm install
npm start
npm test
```

# Actor input Schema

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

Specific supplier website URLs to enrich. Use public home, about, capabilities, products, certifications, quote, RFQ, or contact pages. No search engine discovery is used.

## `domains` (type: `array`):

Bare supplier domains from ERP, vendor master, procurement research, sourcing spreadsheets, or account lists. Domains are normalized to https://domain/ and fetched directly.

## `keywords` (type: `array`):

Industrial terms used only for local relevance scoring and category/capability hints against supplied URLs/domains. They are not sent to search engines.

## `region` (type: `string`):

Optional buyer region, country, or sourcing market used as a location and relevance hint. Example: United States, Mexico, Germany, Japan, or Southeast Asia.

## `maxResults` (type: `integer`):

Maximum normalized supplier sources to process and emit. Keep this small for quickstarts; increase for recurring procurement shortlist refreshes.

## `dryRun` (type: `boolean`):

Validate input and write the local output summary without sending dataset rows, triggering webhook delivery, or charging custom PPE events.

## Actor input object example

```json
{
  "urls": [
    "https://www.parker.com/",
    "https://www.smcusa.com/"
  ],
  "domains": [
    "parker.com",
    "smcusa.com"
  ],
  "keywords": [
    "industrial automation",
    "pneumatics",
    "ISO 9001"
  ],
  "region": "",
  "maxResults": 25,
  "dryRun": false
}
```

# 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 = {
    "urls": [
        "https://www.parker.com/",
        "https://www.smcusa.com/"
    ],
    "domains": [
        "parker.com",
        "smcusa.com"
    ],
    "keywords": [
        "industrial automation",
        "pneumatics",
        "ISO 9001"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("taroyamada/industrial-supplier-intelligence").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 = {
    "urls": [
        "https://www.parker.com/",
        "https://www.smcusa.com/",
    ],
    "domains": [
        "parker.com",
        "smcusa.com",
    ],
    "keywords": [
        "industrial automation",
        "pneumatics",
        "ISO 9001",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("taroyamada/industrial-supplier-intelligence").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 '{
  "urls": [
    "https://www.parker.com/",
    "https://www.smcusa.com/"
  ],
  "domains": [
    "parker.com",
    "smcusa.com"
  ],
  "keywords": [
    "industrial automation",
    "pneumatics",
    "ISO 9001"
  ]
}' |
apify call taroyamada/industrial-supplier-intelligence --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Industrial Supplier Intelligence | B2B Enrichment",
        "description": "Enrich user-provided industrial supplier websites into procurement-ready B2B profiles with categories, capabilities, locations, certifications, contact pages, confidence, PPE charged events, and clear no-charge statuses.",
        "version": "0.1",
        "x-build-id": "zb8j738bWjTaqlVGo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/taroyamada~industrial-supplier-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-taroyamada-industrial-supplier-intelligence",
                "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/taroyamada~industrial-supplier-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-taroyamada-industrial-supplier-intelligence",
                "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/taroyamada~industrial-supplier-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-taroyamada-industrial-supplier-intelligence",
                "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",
                "properties": {
                    "urls": {
                        "title": "Supplier URLs",
                        "maxItems": 100,
                        "type": "array",
                        "description": "Specific supplier website URLs to enrich. Use public home, about, capabilities, products, certifications, quote, RFQ, or contact pages. No search engine discovery is used.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "domains": {
                        "title": "Supplier Domains",
                        "maxItems": 100,
                        "type": "array",
                        "description": "Bare supplier domains from ERP, vendor master, procurement research, sourcing spreadsheets, or account lists. Domains are normalized to https://domain/ and fetched directly.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "keywords": {
                        "title": "Procurement Keywords / Capability Hints",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Industrial terms used only for local relevance scoring and category/capability hints against supplied URLs/domains. They are not sent to search engines.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "region": {
                        "title": "Buyer Region / Sourcing Market",
                        "type": "string",
                        "description": "Optional buyer region, country, or sourcing market used as a location and relevance hint. Example: United States, Mexico, Germany, Japan, or Southeast Asia.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max Supplier Profiles",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum normalized supplier sources to process and emit. Keep this small for quickstarts; increase for recurring procurement shortlist refreshes.",
                        "default": 25
                    },
                    "dryRun": {
                        "title": "Dry Run",
                        "type": "boolean",
                        "description": "Validate input and write the local output summary without sending dataset rows, triggering webhook delivery, or charging custom PPE events.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
