# Das Telefonbuch Business Scraper (`solidcode/dastelefonbuch-scraper`) Actor

\[💰 $0.03 / 1K] Extract German business listings from Das Telefonbuch — name, category, phone, website, full address, ratings, and opening hours. Search any category across multiple cities at once, or paste result-page URLs.

- **URL**: https://apify.com/solidcode/dastelefonbuch-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.03 / 1,000 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

## Das Telefonbuch Business Scraper

Pull structured German business listings from Das Telefonbuch — name, category, phone, website, fully componentized address, star ratings, and opening hours — across many categories and cities in a single run. Search by trade and town, or paste the exact result-page URLs you already built on the site. Built for B2B lead-generation teams, sales prospectors, and market researchers who need clean, contact-ready German SMB data without copy-pasting from directory pages one entry at a time.

### Why This Scraper?

- **Fully componentized German addresses** — every listing splits into `streetAddress`, `postalCode` (PLZ), `city`, and `district` (Stadtteil) plus the combined `address` string, so records drop straight into a CRM without post-processing.
- **Three contact channels per business** — phone (the full, untruncated number, not the shortened on-page version), `website`, and `email` (when the business publishes one, via the Include Details option).
- **Star ratings with review volume** — both `ratingValue` and `ratingCount` on every rated listing, so you can rank prospects by reputation and sample size, not just a bare score.
- **Opening hours, two ways** — a quick `openingHoursText` summary on every row, plus a full weekly schedule (`openingHoursFull`) with day-by-day times when Include Details is enabled.
- **Cross-product search** — every search term is matched against every location, so "Restaurant, Zahnarzt, Friseur" × "Berlin, München, Hamburg" runs all nine combinations in one job.
- **Nationwide German coverage** — works against any city or area on Das Telefonbuch, Germany's largest phone and business directory.
- **Paste-URL mode** — drop in result-page URLs straight from your browser to scrape exactly the pre-filtered search you already set up on the site.
- **Provenance on every row** — `searchTerm`, `searchLocation`, `position`, `entryId`, `detailUrl`, `pageUrl`, and `scrapedAt` let you trace, dedupe, and refresh records with confidence.

### Use Cases

**Lead Generation**
- Build targeted B2B prospect lists of German businesses by trade and city
- Capture phone, website, and email for direct outreach
- Filter prospects by star rating and review count before contacting

**Sales Prospecting**
- Map every dentist, restaurant, or law firm in a target metro area
- Prioritize outreach by reputation using rating value and review volume
- Segment territories with postal-code and district-level address data

**Market Research**
- Measure business density per category across multiple German cities
- Benchmark competitor ratings and review counts in a local market
- Track opening-hours patterns and service availability by area

**CRM Enrichment**
- Append clean street, PLZ, city, and district fields to existing records
- Verify and update phone numbers and websites at scale
- Add email contacts where businesses publish them

**Competitive Analysis**
- Compare a competitor's rating and review footprint against the local field
- Identify high-rated incumbents in a category and region
- Monitor new or changing listings on refresh runs

### Getting Started

#### Single category in one city

```json
{
  "searchTerms": ["Restaurant"],
  "locations": ["Berlin"]
}
````

#### Cross-product: many categories × many cities

```json
{
  "searchTerms": ["Zahnarzt", "Steuerberater", "Friseur"],
  "locations": ["München", "Hamburg", "Köln"],
  "maxResults": 500
}
```

#### Paste exact result-page URLs

```json
{
  "startUrls": [
    "https://www.dastelefonbuch.de/Branchen/Hotel/Frankfurt"
  ],
  "maxResults": 200
}
```

#### Full run with email & opening hours

```json
{
  "searchTerms": ["Rechtsanwalt"],
  "locations": ["Stuttgart"],
  "maxResults": 1000,
  "includeDetails": true,
  "maxPagesPerSearch": 0
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchTerms` | array | `["Restaurant"]` | Business categories or search terms in German (e.g. `Zahnarzt`, `Steuerberater`, `Hotel`, `Friseur`). Each term is searched in every location, covering many categories in one run. |
| `locations` | array | `["Berlin"]` | German cities or areas to search (e.g. `Berlin`, `München`, `Hamburg`, `Köln`). Each location is combined with every search term above. |

#### Or Paste URLs

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | array | `[]` | Paste Das Telefonbuch search or result-page URLs directly from your browser to scrape exactly those results. When provided, the search terms and locations are ignored. |

#### Limits & Extra Details

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Hard cap on the total number of business listings collected across all searches. Increase for bigger runs, or set to `0` for no cap (an internal safety limit still applies). |
| `includeDetails` | boolean | `false` | When enabled, opens each business's detail page to add its email address (when published) and the full weekly opening-hours table. Slower, since it fetches one extra page per business. |
| `maxPagesPerSearch` | integer | `0` | Safety valve limiting how many result pages to fetch per individual search (roughly 10 listings per page). Set to `0` for no per-search page limit — only the Maximum Results cap applies. |

### Output

Each business is one flat row. Example:

```json
{
  "name": "Ristorante Da Mario",
  "category": "Restaurant",
  "phone": "+49 30 12345678",
  "website": "https://www.da-mario-berlin.de",
  "email": "info@da-mario-berlin.de",
  "address": "Kurfürstendamm 12, 10719 Berlin, Wilmersdorf",
  "streetAddress": "Kurfürstendamm 12",
  "postalCode": "10719",
  "city": "Berlin",
  "district": "Wilmersdorf",
  "ratingValue": 4.6,
  "ratingCount": 213,
  "openingHoursText": "Mo–Sa 11:00–23:00",
  "openingHoursFull": "Mo 11:00-23:00; Tu 11:00-23:00; We 11:00-23:00; Th 11:00-23:00; Fr 11:00-23:00; Sa 11:00-23:00",
  "searchTerm": "Restaurant",
  "searchLocation": "Berlin",
  "position": 1,
  "entryId": "a1b2c3d4",
  "detailUrl": "https://adresse.dastelefonbuch.de/Berlin/ristorante-da-mario.html",
  "pageUrl": "https://www.dastelefonbuch.de/Branchen/Restaurant/Berlin",
  "scrapedAt": "2026-06-27T10:32:01Z"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Business name |
| `category` | string | Business category / trade (Branche) |
| `ratingValue` | number | Average star rating, when rated |
| `ratingCount` | number | Number of ratings behind the score |

#### Contact

| Field | Type | Description |
|-------|------|-------------|
| `phone` | string | Full phone number (untruncated) |
| `website` | string | Business website URL, when listed |
| `email` | string | Email address — populated with Include Details, when the business publishes one |

#### Address

| Field | Type | Description |
|-------|------|-------------|
| `address` | string | Full combined address string |
| `streetAddress` | string | Street and house number |
| `postalCode` | string | Postal code (PLZ) |
| `city` | string | City |
| `district` | string | District / neighborhood (Stadtteil), when present |

#### Opening Hours

| Field | Type | Description |
|-------|------|-------------|
| `openingHoursText` | string | Short opening-hours summary, on every row |
| `openingHoursFull` | string | Full day-by-day weekly schedule — populated with Include Details |

#### Metadata

| Field | Type | Description |
|-------|------|-------------|
| `searchTerm` | string | Search term that produced this row |
| `searchLocation` | string | Location that produced this row |
| `position` | number | Rank of the listing on its result page |
| `entryId` | string | Stable directory entry identifier |
| `detailUrl` | string | Link to the business's detail page |
| `pageUrl` | string | Result page the listing came from |
| `scrapedAt` | string | ISO timestamp of collection |

### Tips for Best Results

- **Always pair a category with at least one city.** A search term with no location searches near-me rather than your target town — listing one or more cities in `locations` keeps results geographically scoped.
- **Let cross-product do the heavy lifting.** Listing 5 categories and 10 cities runs all 50 combinations automatically — no need to launch 50 separate jobs.
- **Turn on Include Details only when you need email or full hours.** It fetches an extra page per business, so leave it off for fast core runs (name, category, phone, website, address, ratings) and switch it on for outreach-ready lists.
- **Email is sparse by design.** Most German businesses don't publish an email in the directory, so expect `email` to be filled on a minority of records even with Include Details on — phone and website are the reliable contact channels.
- **Use Paste-URL mode for refined searches.** Build a filtered search on Das Telefonbuch in your browser, then paste the result-page URL into `startUrls` to scrape exactly that set.
- **Rely on Maximum Results, not page limits.** For most runs, set `maxResults` and leave `maxPagesPerSearch` at `0` — the result cap stops pagination cleanly once your target count is reached.
- **Dedupe on `entryId`** when merging multiple runs — it's the stable per-listing key for keeping your dataset clean across refreshes.

### Pricing

**From $0.03 per 1,000 results** — pay only for the business listings you collect, billed per result. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.0036 | $0.0034 | $0.0032 | $0.0030 |
| 1,000 | $0.036 | $0.034 | $0.032 | $0.030 |
| 10,000 | $0.36 | $0.34 | $0.32 | $0.30 |
| 100,000 | $3.60 | $3.40 | $3.20 | $3.00 |

A "result" is one business listing pushed to your dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor collects publicly available business directory information. Use the data responsibly and in compliance with Das Telefonbuch's terms of service, applicable data-protection laws (including the GDPR), and any restrictions on contacting businesses or processing personal data. You are responsible for ensuring your use of the collected data is lawful, including obtaining any required consent for marketing outreach. Do not use this actor to collect or process data in ways that violate privacy rights or applicable regulations. </content> </invoke>

# Actor input Schema

## `searchTerms` (type: `array`):

Business categories or search terms to look up, in German (e.g. 'Restaurant', 'Zahnarzt', 'Steuerberater', 'Hotel', 'Friseur'). Each term is searched in every location below, so you can cover many categories in one run.

## `locations` (type: `array`):

German cities or areas to search in (e.g. 'Berlin', 'München', 'Hamburg', 'Köln', 'Frankfurt'). Each location is combined with every search term above. Leave empty to search nationally.

## `startUrls` (type: `array`):

Paste Das Telefonbuch search or result-page URLs directly from your browser. Use this when you have already built a search on the site and want to scrape exactly those results. When provided, the search terms and locations above are ignored.

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

Hard cap on the total number of business listings collected across all searches. Default 100 — increase for bigger runs, or set to 0 for no cap (an internal safety limit of 50,000 results still applies to prevent runaway pagination). Each listing is billed at the per-result rate.

## `includeDetails` (type: `boolean`):

When enabled, the actor also opens each business's detail page to add its email address (when published) and the full weekly opening-hours table. This is slower because it fetches one extra page per business — leave it off if you only need the core fields (name, category, phone, website, address, ratings).

## `maxPagesPerSearch` (type: `integer`):

Safety valve limiting how many result pages to fetch for each individual search (Das Telefonbuch shows roughly 10 listings per page). Set to 0 for no per-search page limit — only the Maximum Results cap above applies.

## Actor input object example

```json
{
  "searchTerms": [
    "Restaurant"
  ],
  "locations": [
    "Berlin"
  ],
  "startUrls": [],
  "maxResults": 100,
  "includeDetails": false,
  "maxPagesPerSearch": 0
}
```

# Actor output Schema

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

Table of businesses with the most useful fields — name, category, phone, city, rating, and detail link.

## `details` (type: `string`):

Full per-business rows with website, email (when 'Include contact details' is on), componentized address, opening hours, ratings, and source page.

# 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 = {
    "searchTerms": [
        "Restaurant"
    ],
    "locations": [
        "Berlin"
    ],
    "startUrls": [],
    "maxResults": 100,
    "includeDetails": false,
    "maxPagesPerSearch": 0
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/dastelefonbuch-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 = {
    "searchTerms": ["Restaurant"],
    "locations": ["Berlin"],
    "startUrls": [],
    "maxResults": 100,
    "includeDetails": False,
    "maxPagesPerSearch": 0,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/dastelefonbuch-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 '{
  "searchTerms": [
    "Restaurant"
  ],
  "locations": [
    "Berlin"
  ],
  "startUrls": [],
  "maxResults": 100,
  "includeDetails": false,
  "maxPagesPerSearch": 0
}' |
apify call solidcode/dastelefonbuch-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Das Telefonbuch Business Scraper",
        "description": "[💰 $0.03 / 1K] Extract German business listings from Das Telefonbuch — name, category, phone, website, full address, ratings, and opening hours. Search any category across multiple cities at once, or paste result-page URLs.",
        "version": "1.0",
        "x-build-id": "Gn5I9C3dD4atvSkoC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~dastelefonbuch-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-dastelefonbuch-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/solidcode~dastelefonbuch-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-dastelefonbuch-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/solidcode~dastelefonbuch-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-dastelefonbuch-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",
                "properties": {
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "Business categories or search terms to look up, in German (e.g. 'Restaurant', 'Zahnarzt', 'Steuerberater', 'Hotel', 'Friseur'). Each term is searched in every location below, so you can cover many categories in one run.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "German cities or areas to search in (e.g. 'Berlin', 'München', 'Hamburg', 'Köln', 'Frankfurt'). Each location is combined with every search term above. Leave empty to search nationally.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Result-Page URLs",
                        "type": "array",
                        "description": "Paste Das Telefonbuch search or result-page URLs directly from your browser. Use this when you have already built a search on the site and want to scrape exactly those results. When provided, the search terms and locations above are ignored.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Hard cap on the total number of business listings collected across all searches. Default 100 — increase for bigger runs, or set to 0 for no cap (an internal safety limit of 50,000 results still applies to prevent runaway pagination). Each listing is billed at the per-result rate.",
                        "default": 100
                    },
                    "includeDetails": {
                        "title": "Include contact details (email & full opening hours)",
                        "type": "boolean",
                        "description": "When enabled, the actor also opens each business's detail page to add its email address (when published) and the full weekly opening-hours table. This is slower because it fetches one extra page per business — leave it off if you only need the core fields (name, category, phone, website, address, ratings).",
                        "default": false
                    },
                    "maxPagesPerSearch": {
                        "title": "Maximum Pages per Search",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Safety valve limiting how many result pages to fetch for each individual search (Das Telefonbuch shows roughly 10 listings per page). Set to 0 for no per-search page limit — only the Maximum Results cap above applies.",
                        "default": 0
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
