# EU Business Phone Finder — Company Phone & Website Lookup (`studio-amba/eu-business-phone-finder`) Actor

Give a list of company names (plus optional country/city) and get back phone number, website and address for each — matched against our own European business directories (France, Italy, Germany, Czechia, Poland, Switzerland, Norway) with a confidence score.

- **URL**: https://apify.com/studio-amba/eu-business-phone-finder.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 phone founds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## EU Business Phone Finder — Company Phone & Website Lookup

Give this actor a list of company names, and get back a phone number, website, and address for each one — matched against our own European business directories. No manual searching, no clicking through seven different Yellow Pages sites one country at a time.

This is a meta-actor: it does not scrape any site directly. It routes each company to the directory scraper(s) that cover its country, fuzzy-matches the company name against whatever listings come back, and returns the single best match with a confidence score.

### How to scrape European business directories for phone numbers, without touching seven sites by hand

This actor is the orchestration layer over our own national directory scrapers (`pagesjaunes-scraper`, `paginegialle-it-scraper`, `gelbeseiten-scraper`, `wlw-scraper`, `firmy-cz-scraper`, `panoramafirm-pl-scraper`, `local-ch-scraper`, `proff-no-scraper`). Each one already knows how to scrape its own country's directory site; this actor's job is picking the right one per company, running it, and matching the result back to the name you searched.

### What it does

- **One list in, one row per company out.** Give a batch of company names (optionally with country and city) and get a flat table back: `phone`, `website`, `address`, `city`, `country`, `source`, `confidence`.
- **Routes by country automatically.** France goes to Pages Jaunes, Italy to Pagine Gialle, Germany to Gelbe Seiten and Wer liefert was, Czechia to Firmy.cz, Poland to PanoramaFirm, Switzerland to local.ch, Norway to Proff.no. No country given? The actor tries every directory and keeps the best-scoring hit.
- **Confidence, not a guess.** Every row carries a `confidence` score from 0 to 1 that blends how closely the matched listing's name resembles the input name with whether a phone number was actually found. A perfect name match with no phone listed scores lower than a strong match that has one.
- **No-match is a real answer.** Not every company is listed in a public directory. When nothing scores above the match threshold, the row still comes back — `confidence: 0`, `phone: null` — instead of silently dropping the company from your results. You always get one row per company you sent in.
- **Two sources for Germany.** German companies are checked against Gelbe Seiten (general yellow pages) first, then Wer liefert was (a B2B supplier directory) as a fallback — some companies, especially manufacturers and wholesalers, only show up on the trade directory.

### How to find European business phone numbers

1. Build a list of companies under `companies`: each item needs a `name`, and can optionally include `country` (`FR`, `IT`, `DE`, `CZ`, `PL`, `CH`, `NO`) and `city`. Giving the country skips wasted lookups against directories that will never match; giving the city sharpens the match when the company name is common.
2. Run the actor. Each company is looked up against the directory (or directories) for its country in parallel, batched 3 companies at a time so a large list doesn't fire off dozens of simultaneous child runs.
3. Read the output table. `phone` and `website` are copied straight from the matched listing. `confidence` tells you how much to trust the match — above 0.7 generally means a strong name match with a real phone number attached.
4. For companies with no country specified, the actor tries all seven directories and keeps whichever result scored highest — useful for a mixed-country list, but slower and more likely to return a false-positive match on a common name (a Polish company can accidentally match an unrelated German listing with a similar name). Set `country` whenever you know it.
5. Use `maxCandidatesPerSource` to widen or narrow how many listings each directory search considers before picking the best name match — raise it for common company names that need more candidates to disambiguate.

### Input options

| Field | Type | Description |
|---|---|---|
| `companies` | array (required) | List of `{ name, country?, city? }` objects. `country` is one of `FR`, `IT`, `DE`, `CZ`, `PL`, `CH`, `NO` — omit to try every directory. `city` narrows the directory search. |
| `maxCandidatesPerSource` | integer | How many listings each directory search fetches before the best match is picked. Default `10`. |
| `timeoutPerSourceSecs` | integer | How long to wait for each directory child-actor before treating it as failed for that company. Default `180` (Pages Jaunes' detail-page phone lookup is the slowest source, ~3 min for 5 candidates). |
| `proxyConfiguration` | proxy | Advanced — forces a specific proxy on every child-actor. Leave empty so each directory uses its own country-tuned default. |

### Output fields

| Field | Example | Description |
|---|---|---|
| `companyName` | `"Carrefour"` | The name as given in input |
| `matchedName` | `"Carrefour Market"` | The listing name found in the matched directory |
| `phone` | `"01 42 XX XX XX"` | As published by the source, not reformatted |
| `website` | `"https://www.carrefour.fr"` | |
| `address` / `city` / `country` | | Registered/listed address of the match |
| `source` | `"pagesjaunes"` | Which directory produced the match |
| `confidence` | `0.9` | 0-1. See "What it does" above |
| `scrapedAt` | ISO timestamp | |

### Example output

```json
{
  "companyName": "Carrefour",
  "matchedName": "Carrefour Market",
  "phone": "01 42 96 98 00",
  "website": "https://www.carrefour.fr",
  "address": "6 Rue Antoine Chantin",
  "city": "Paris",
  "country": "FR",
  "source": "pagesjaunes",
  "confidence": 0.9,
  "scrapedAt": "2026-07-20T09:00:00.000Z"
}
````

A no-match row looks like this — still one row per input company, never dropped:

```json
{
  "companyName": "Obscure Ltd",
  "matchedName": null,
  "phone": null,
  "website": null,
  "address": null,
  "city": null,
  "country": "NO",
  "source": null,
  "confidence": 0,
  "scrapedAt": "2026-07-20T09:00:00.000Z"
}
```

### Cost estimate

Priced at $0.005 per phone number found (pay-per-event, charged only on rows where a phone was actually matched — a no-match row costs nothing beyond the flat per-run start fee). Looking up 200 companies with a 60% match rate costs roughly $0.60 in per-result charges plus the run start fee.

### Limitations

- **Coverage is uneven across countries.** Pages Jaunes (FR) and Gelbe Seiten (DE) are broad consumer-facing directories with strong small-business coverage. Proff.no (NO) is a company-registry aggregator, not a phone directory first — its phone field is thinner. Wer liefert was (DE) only covers B2B suppliers/manufacturers, not consumer-facing businesses.
- **No country given means slower, noisier results.** Trying all seven directories for a company without a country takes longer and increases the chance the "best match" is a same-named but unrelated company in the wrong country. Set `country` whenever you have it.
- **Phone numbers are not reformatted or validated for dialability.** They are copied exactly as the source directory published them (national formatting conventions vary by country) — the actor filters out obvious non-numbers (fewer than 6 digits) but does not verify the line is live.
- **A single directory scraper going down degrades that country silently to no-match**, not a run failure — check `source` being `null` at scale for one country as a signal to investigate that underlying scraper.
- **This only searches directories we already scrape.** Countries outside FR, IT, DE, CZ, PL, CH, NO are not covered yet.

### Countries covered

| Country | Directory | What it's best at |
|---|---|---|
| France (FR) | Pages Jaunes | Broad consumer/SME coverage, strong phone + website fields |
| Italy (IT) | Pagine Gialle | Broad consumer/SME coverage |
| Germany (DE) | Gelbe Seiten (primary), Wer liefert was (secondary) | General directory plus a dedicated B2B supplier/manufacturer fallback |
| Czechia (CZ) | Firmy.cz | Broad consumer/SME coverage |
| Poland (PL) | PanoramaFirm | Broad consumer/SME coverage |
| Switzerland (CH) | local.ch | Broad consumer/SME coverage |
| Norway (NO) | Proff.no | Company-registry aggregator; phone coverage thinner than the others |

### FAQ

**What happens if a company matches in more than one directory?** It can't — each company is only routed to the directory (or directories) for the country you gave it. If you omit the country, all seven run and the single highest-scoring match across all of them wins; the others are discarded, not merged.

**Why is `confidence` sometimes lower than I'd expect for an exact name match?** Confidence penalizes a match that has no phone number attached. An exact name match with `phone: null` scores at 40% of what the same match with a phone number would — the point of this actor is finding a number to call, not just confirming the company exists in a directory.

**Can I run this on a very large list?** Yes — companies are processed in batches of 3 (each batch itself fanning out to 1-7 directory child-actors in parallel per company), and results are pushed to the dataset as each batch completes, so a long-running batch doesn't lose partial progress if interrupted.

### Related scrapers

Each directory behind this actor is also available standalone if you need raw, unmatched listing data at scale: `pagesjaunes-scraper`, `paginegialle-it-scraper`, `gelbeseiten-scraper`, `wlw-scraper`, `firmy-cz-scraper`, `panoramafirm-pl-scraper`, `local-ch-scraper`, `proff-no-scraper`. For verifying a company's legal/registry status rather than its phone number, see `eu-dealer-counterparty-check`.

# Actor input Schema

## `companies` (type: `array`):

List of companies to find a phone number for. Each item needs a "name", and can optionally include "country" (FR, IT, DE, CZ, PL, CH, NO — routes to the matching directory; omit to try every directory, best-effort) and "city" (narrows the directory search and improves match accuracy). Example: \[{"name": "Carrefour", "country": "FR", "city": "Paris"}]

## `maxCandidatesPerSource` (type: `integer`):

How many listings each underlying directory search fetches before the best name match is picked. Higher values help disambiguate a common company name but cost more child-actor compute.

## `timeoutPerSourceSecs` (type: `integer`):

How long to wait for each underlying directory child-actor before treating it as failed for that company. Default 180s accounts for the slowest source (Pages Jaunes detail-page enrichment for phone numbers).

## `proxyConfiguration` (type: `object`):

Only set this to FORCE a specific proxy on every underlying directory child-actor. Leave empty (default) so each child-actor uses its own country-tuned proxy default instead.

## Actor input object example

```json
{
  "companies": [
    {
      "name": "Carrefour",
      "country": "FR",
      "city": "Paris"
    },
    {
      "name": "Ferrari",
      "country": "IT",
      "city": "Modena"
    },
    {
      "name": "Siemens",
      "country": "DE"
    }
  ],
  "maxCandidatesPerSource": 10,
  "timeoutPerSourceSecs": 180,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "companies": [
        {
            "name": "Carrefour",
            "country": "FR",
            "city": "Paris"
        },
        {
            "name": "Ferrari",
            "country": "IT",
            "city": "Modena"
        },
        {
            "name": "Siemens",
            "country": "DE"
        }
    ],
    "maxCandidatesPerSource": 10,
    "timeoutPerSourceSecs": 180,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/eu-business-phone-finder").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 = {
    "companies": [
        {
            "name": "Carrefour",
            "country": "FR",
            "city": "Paris",
        },
        {
            "name": "Ferrari",
            "country": "IT",
            "city": "Modena",
        },
        {
            "name": "Siemens",
            "country": "DE",
        },
    ],
    "maxCandidatesPerSource": 10,
    "timeoutPerSourceSecs": 180,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/eu-business-phone-finder").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 '{
  "companies": [
    {
      "name": "Carrefour",
      "country": "FR",
      "city": "Paris"
    },
    {
      "name": "Ferrari",
      "country": "IT",
      "city": "Modena"
    },
    {
      "name": "Siemens",
      "country": "DE"
    }
  ],
  "maxCandidatesPerSource": 10,
  "timeoutPerSourceSecs": 180,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call studio-amba/eu-business-phone-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=studio-amba/eu-business-phone-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "EU Business Phone Finder — Company Phone & Website Lookup",
        "description": "Give a list of company names (plus optional country/city) and get back phone number, website and address for each — matched against our own European business directories (France, Italy, Germany, Czechia, Poland, Switzerland, Norway) with a confidence score.",
        "version": "0.1",
        "x-build-id": "ia189x5PF9zcvHa9D"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~eu-business-phone-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-eu-business-phone-finder",
                "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/studio-amba~eu-business-phone-finder/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-eu-business-phone-finder",
                "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/studio-amba~eu-business-phone-finder/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-eu-business-phone-finder",
                "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": [
                    "companies"
                ],
                "properties": {
                    "companies": {
                        "title": "Companies to look up",
                        "type": "array",
                        "description": "List of companies to find a phone number for. Each item needs a \"name\", and can optionally include \"country\" (FR, IT, DE, CZ, PL, CH, NO — routes to the matching directory; omit to try every directory, best-effort) and \"city\" (narrows the directory search and improves match accuracy). Example: [{\"name\": \"Carrefour\", \"country\": \"FR\", \"city\": \"Paris\"}]"
                    },
                    "maxCandidatesPerSource": {
                        "title": "Max candidates per directory",
                        "type": "integer",
                        "description": "How many listings each underlying directory search fetches before the best name match is picked. Higher values help disambiguate a common company name but cost more child-actor compute.",
                        "default": 10
                    },
                    "timeoutPerSourceSecs": {
                        "title": "Per-source timeout (seconds)",
                        "type": "integer",
                        "description": "How long to wait for each underlying directory child-actor before treating it as failed for that company. Default 180s accounts for the slowest source (Pages Jaunes detail-page enrichment for phone numbers).",
                        "default": 180
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration (advanced — leave empty)",
                        "type": "object",
                        "description": "Only set this to FORCE a specific proxy on every underlying directory child-actor. Leave empty (default) so each child-actor uses its own country-tuned proxy default instead."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
