# Gelbe Seiten (German Yellow Pages) Scraper (`dominic-quaiser/gelbe-seiten-german-yellow-pages-scraper`)

Scrape German business listings from Gelbe Seiten with flexible detail levels. This Apify Actor supports fast, basic, and deep search modes, rate limiting, proxy rotation, and index control. Ideal for lead gen, SEO, and market research. Outputs structured data to Apify datasets.

- **URL**: https://beta-securitybyobscurity.apify.com/dominic-quaiser/gelbe-seiten-german-yellow-pages-scraper.md
- **Developed by:** [Dominic M. Quaiser](https://beta-securitybyobscurity.apify.com/dominic-quaiser) (community)
- **Categories:** Automation, Lead generation, Jobs
- **Stats:** 40 total users, 4 monthly users, 100.0% runs succeeded, 5 bookmarks
- **User rating**: No ratings yet

## Pricing

$8.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

# README

### Gelbe Seiten (German Yellow Pages) Scraper

A Python-based Apify Actor designed to scrape business listings from Gelbe Seiten ([www.gelbeseiten.de](https://www.gelbeseiten.de/)). It offers three distinct modes for varying levels of detail extraction. Features include rate limiting, proxy configuration, flexible index ranges for controlling pagination or resuming interrupted runs, customizable sorting options, and location-based radius filtering.

[🇩🇪 Deutsche Anleitung/German Instructions](https://dominic-quaiser.io/de/gelbe-seiten-scraper)

#### 💡 Features

- **Targeted Search**: Specify the service or business type (`search_what`) and the geographic area (`search_where`). Use `"bundesweit"` for nationwide searches.
- **Three Search Modes** (`search_mode`):
  - `fast_search`: Quickly extracts summary information directly from search result pages *without* visiting detail pages. Includes name, address snippet, phone, rating, primary branch, and encoded contact links (email/website). Ideal for rapid list building.
  - `basic_search`: Visits each business profile page once to fetch essential details like full address, email, website, description, industry, phone number, and social media links. *Does not include summary data like ratings from the search results page.*
  - `deep_search`: Combines the summary data from `fast_search` with a comprehensive detail page visit to extract all available fields, including opening hours, services, detailed company information, training opportunities, payment methods, social media links, fax number, Google Maps link, FAQs, etc. This is the most thorough mode.
- **Flexible Sorting**: Choose between relevance-based sorting (default) or rating-based sorting to prioritize highly-rated businesses.
- **Location Radius Control**: Set a custom search perimeter (0-50 km) around your specified location for precise geographic targeting.
- **Index Control**: Use `start_index` and `end_index` (1-based) to define a specific range of listings to process, useful for resuming runs or targeted scraping.
- **Unlimited Mode**: Set `max_businesses` to `0` to scrape all available results matching the search criteria.
- **Rate Limiting**: Configurable `requests_per_second` throttle applied to API calls and detail page requests to manage load and reduce the risk of blocking.
- **Proxy Support**: Leverages Apify's built-in proxy integration (`proxyConfiguration`) for reliable IP rotation during scraping, especially crucial for detail page visits.
- **Structured Output**: Data is saved to the Apify dataset. Each record includes a `scraped_at` UTC timestamp and its `index` (overall position in the search results).

#### 📥 Input Parameters

Configure the actor's behavior using these fields in the Apify Console Input tab or via API:

| Field                 | Type    | Description                                                                                                                                                                     | Default          | Required |
| :-------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------- | :------- |
| `search_what`         | String  | The business type, profession, or service to search for (e.g., "Restaurant", "Arzt", "Hotel", "Kreditvermittlung").                                                             | `"containerbau"` | Yes      |
| `search_where`        | String  | The geographic location (e.g., city name like "Berlin", region, or `"bundesweit"` for nationwide).                                                                              | `"bundesweit"`   | Yes      |
| `search_mode`         | String  | Extraction detail level: `fast_search` (summary only), `basic_search` (essential details from profile page), `deep_search` (summary + all profile details).                     | `"basic_search"` | No       |
| `sorting`             | String  | Sort search results by `relevance` (how well listings match search terms) or `rating` (user reviews and ratings).                                                               | `"relevance"`    | No       |
| `perimeter`           | Integer | Search radius around the specified location in kilometers (0-50). Only applies to specific cities/areas, not nationwide (`bundesweit`) searches.                                | `0`              | No       |
| `max_businesses`      | Integer | Maximum number of listings to save. Set `0` for unlimited (scrapes all found results).                                                                                          | `0`              | No       |
| `start_index`         | Integer | 1-based index of the first listing to save. Useful for resuming runs or skipping initial results.                                                                               | `1`              | No       |
| `end_index`           | Integer | 1-based index of the last listing to save (inclusive). Set `0` to ignore this limit and rely solely on `max_businesses`.                                                        | `0`              | No       |
| `requests_per_second` | Integer | Max requests per second. Applies to API calls and detail page fetches. Lower values (e.g., 2-5) are safer, higher values (e.g., 10+) faster. | `12`             | No       |
| `proxyConfiguration`  | Object  | Apify proxy settings (Automatic recommended) or custom proxy configuration.                                                                                                     | `{}`             | No       |

##### 🔹 Example Input

```json
{
  "search_what": "Hotels",
  "search_where": "Hamburg",
  "search_mode": "deep_search",
  "sorting": "rating",
  "perimeter": 15,
  "max_businesses": 200,
  "start_index": 51,
  "requests_per_second": 8,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

#### 📤 Output Data Structure

Each record in the dataset is a JSON object. The exact fields depend on the selected `search_mode`.

##### 🔹 `fast_search` Example Output

```json
{
  "index": 1,
  "url": "https://www.gelbeseiten.de/gsbiz/abc123xyz",
  "name": "SchnellTest GmbH",
  "bewertung": 4.5,
  "bewertungen": 8,
  "besteBranche": "Testdienste",
  "telefonnummer": "040 1234567",
  "emaillink": "https://www.gelbeseiten.de/gsbiz/abc123xyz#email-schreiben", // Decoded from Base64
  "webseitelink": "https://schnelltest.de", // Decoded from Base64
  "adresse_from_search": "Teststraße 1, 20095 Hamburg Neustadt", // Address snippet from search results
  "scraped_at": "2025-04-30T09:30:00.123Z"
}
```

##### 🔹 `basic_search` Example Output

```json
{
  "index": 51, // Example if start_index was 51
  "url": "https://www.gelbeseiten.de/gsbiz/abc123xyz",
  "name": "Hotel Hanseatic", // Extracted from detail page
  "email": "info@hotel-hanseatic.de", // Extracted from detail page
  "website": "http://www.hotel-hanseatic.de", // Extracted from detail page
  "beschreibung": "Gemütliches Hotel im Herzen von St. Georg.", // Extracted from detail page
  "branche": "Hotels", // Extracted from detail page
  "social_media": { // Extracted from detail page
      "facebook": "https://facebook.com/hotelhanseatic"
   },
  "address": "Steindamm 50, 20099 Hamburg St. Georg", // Address from detail page
  "telefonnummer": "040 9876543", // Extracted from detail page
  "scraped_at": "2025-04-30T09:35:00.789Z"
}
```

**Note:** Fetches only from the detail page, does not include search result summary data.

##### 🔹 `deep_search` Example Output

Combines `fast_search` summary data with all available detail page data.

```json
{
  // --- Fields from fast_search (search results page) ---
  "index": 201,
  "url": "https://www.gelbeseiten.de/gsbiz/abc123xyz",
  "name": "Muster Restaurant",
  "bewertung": 4.8,
  "bewertungen": 55,
  "besteBranche": "Restaurants",
  "telefonnummer": "040 1122334",
  "emaillink": "https://www.gelbeseiten.de/gsbiz/abc123xyz#email-schreiben",
  "webseitelink": "https://www.muster-restaurant.de",
  "adresse_from_search": "Musterweg 10, 20457 Hamburg Altstadt",
  "scraped_at": "2025-04-30T09:40:00.456Z",
  // --- Additional fields from deep_search (detail page) ---
  "email": "reservierung@muster-restaurant.de",
  "website": "https://www.muster-restaurant.de", // The same as webseitelink
  "beschreibung": "Moderne deutsche Küche mit saisonalen Zutaten.",
  "oeffnungszeiten": { // Example structure
    "Mo.": "Ruhetag",
    "Di.-Sa.": "18:00 - 23:00",
    "So.": "12:00 - 15:00"
  },
  "branche": "Restaurant; Deutsche Küche", // Can be more detailed than besteBranche
  "leistungsumfang": "Abendessen, Mittagstisch (So), Terrasse",
  "services": ["Restaurant", "Deutsche Küche", "Terrasse"],
  "unternehmensinformationen": { // Example structure
      "gründungsjahr": ["2010"],
      "parkplätze": ["vorhanden"]
   },
  "ausbildung": null, // Or text/list if available
  "zahlungsmittel": ["EC-Karte", "Kreditkarte", "Bar"],
  "social_media": {
      "instagram": "https://instagram.com/musterrestaurant"
   },
  "google_maps_url": "",
  "faxnummer": "040 1122335",
}
```

Each record includes additional fields depending on the `search_mode` selected. See below for a full field reference:

| Key                         | Available in            | Description                                         |
|-----------------------------|-------------------------|-----------------------------------------------------|
| `name`                      | fast/basic/deep         | Company name from ether the listing or detail page. |
| `adresse_from_search`       | fast/deep               | Address snippet from listing page.                  |
| `address`                   | basic/deep              | Street address from detail page.                    |
| `telefonnummer`             | fast/basic/deep         | Phone number from ether the listing or detail page. |
| `faxnummer`                 | deep                    | Fax number from the detail page.                    |
| `bewertung`                 | fast/deep               | Average rating (numeric).                           |
| `bewertungen`               | fast/deep               | Number of reviews.                                  |
| `besteBranche`              | fast/deep               | Primary branch/industry from listing.               |
| `branche`                   | basic/deep              | Industry from detail page.                          |
| `email`                     | basic/deep              | Email provided on the detail page.                  |
| `emaillink`                 | fast/deep               | Decoded link to the email on the detail page.       |
| `webseitelink`              | fast/deep               | Decoded website link.                               |
| `beschreibung`              | basic/deep              | Business description on the detail page.            |
| `oeffnungszeiten`           | deep                    | Opening hours by day.                               |
| `leistungsumfang`           | deep                    | Scope of services.                                  |
| `services`                  | deep                    | List of services offered.                           |
| `unternehmensinformationen` | deep                    | Additional company information.                     |
| `ausbildung`                | deep                    | Education or training information.                  |
| `zahlungsmittel`            | deep                    | Accepted payment methods.                           |
| `social_media`              | basic/deep              | Social media links.                                 |
| `google_maps_url`           | deep                    | Google Maps search URL.                             |
| `faq`                       | deep                    | List of FAQ Q\&A pairs (if any).                     |

**Note**: Any field may be `null` if not present on the page.

#### ⚙️ Usage

1. Configure inputs in the "Input" tab (set `search_what`, `search_where`, etc.).
   ![Search Screenshot](https://dominic-quaiser.io/assets/Screenshot-YP-1.png)
2. Choose a proxy mode. Automatic Apify Proxy is recommended for reliability.
3. Click **Start**.
4. Access results under **Storage** → **Dataset**.

To improve your results, first test your search terms on Yellow Pages to see what works best.
It is recommend using the search terms suggested by Yellow Pages for the `search_what` parameter.
![Search Screenshot](https://dominic-quaiser.io/assets/Screenshot-YP-2.png)

#### 🎯 Use Cases

- Lead generation and contact harvesting.
- Market research and competitor analysis.
- Local SEO and business directory creation.
- Data enrichment pipelines on Apify.
- Finding top-rated businesses in specific areas using rating-based sorting.
- Targeting businesses within precise geographic boundaries using radius filtering.

#### 🔗 Integrations

- **Scheduler**: automate daily/weekly runs.
- **Webhooks**: trigger downstream workflows on completion.
- **API**: programmatic control via Apify API.
- **Composer**: chain with other Actors (e.g., cleaning, enrichment).

#### 🛠️ Maintainer

- **Author**: Dominic M. Quaiser
- **Contact**: <mail@dominic-quaiser.io>
- **Website**: [dominic-quaiser.io](https://dominic-quaiser.io/)

# Actor input Schema

## `search_what` (type: `string`):

Enter the type of business, profession, or service you want to find (e.g., 'Restaurant', 'Arzt', 'Hotel', 'Kreditvermittlung').

## `search_where` (type: `string`):

Specify the geographic location for your search. Use city names (e.g., 'Berlin', 'München'), regions, or 'bundesweit' for nationwide results.

## `search_mode` (type: `string`):

Select the level of detail for scraped listings:

- Fast Search: Only extracts basic info from listing page (quickest)
- Basic Search: Extracts name, phoneNumber, email, website, description, industry, and address fields (recommended)
- Deep Search: Extracts all available details including additional business attributes (most comprehensive)

## `sorting` (type: `string`):

Choose how to sort the search results. Relevance sorts by how well listings match your search terms, while Rating sorts by user reviews and ratings.

## `perimeter` (type: `integer`):

Set the search radius around your specified location in kilometers. Only applies when searching in a specific city or area (not for 'bundesweit'). Range: 0-50 km.

## `max_businesses` (type: `integer`):

Maximum number of business listings to extract. Set to 0 for unlimited (will scrape all available results).

## `start_index` (type: `integer`):

Begin extraction from this listing number (1-based indexing, where 1 is the first result). Useful for resuming interrupted runs or pagination.

## `end_index` (type: `integer`):

Stop extraction at this listing number (inclusive). Set to 0 to use only the max\_businesses limit or extract all available listings.

## `requests_per_second` (type: `integer`):

Rate limit for API requests. Lower values minimize blocking risk but run slower. Higher values run faster but may trigger rate limiting. Applied to all search modes.

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

Specifies proxy servers that will be used by the scraper in order to hide its origin.

## Actor input object example

```json
{
  "search_what": "containerbau",
  "search_where": "bundesweit",
  "search_mode": "basic_search",
  "sorting": "relevance",
  "perimeter": 0,
  "max_businesses": 0,
  "start_index": 1,
  "end_index": 0,
  "requests_per_second": 12,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("dominic-quaiser/gelbe-seiten-german-yellow-pages-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 = { "proxyConfiguration": { "useApifyProxy": True } }

# Run the Actor and wait for it to finish
run = client.actor("dominic-quaiser/gelbe-seiten-german-yellow-pages-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 '{
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call dominic-quaiser/gelbe-seiten-german-yellow-pages-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=dominic-quaiser/gelbe-seiten-german-yellow-pages-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Gelbe Seiten (German Yellow Pages) Scraper",
        "description": "Scrape German business listings from Gelbe Seiten with flexible detail levels. This Apify Actor supports fast, basic, and deep search modes, rate limiting, proxy rotation, and index control. Ideal for lead gen, SEO, and market research. Outputs structured data to Apify datasets.",
        "version": "1.1",
        "x-build-id": "XxAG9mPHoNaUsLGxo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dominic-quaiser~gelbe-seiten-german-yellow-pages-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dominic-quaiser-gelbe-seiten-german-yellow-pages-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/dominic-quaiser~gelbe-seiten-german-yellow-pages-scraper/runs": {
            "post": {
                "operationId": "runs-sync-dominic-quaiser-gelbe-seiten-german-yellow-pages-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/dominic-quaiser~gelbe-seiten-german-yellow-pages-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-dominic-quaiser-gelbe-seiten-german-yellow-pages-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "search_what",
                    "search_where"
                ],
                "properties": {
                    "search_what": {
                        "title": "What to Search",
                        "type": "string",
                        "description": "Enter the type of business, profession, or service you want to find (e.g., 'Restaurant', 'Arzt', 'Hotel', 'Kreditvermittlung').",
                        "default": "containerbau"
                    },
                    "search_where": {
                        "title": "Search Location",
                        "type": "string",
                        "description": "Specify the geographic location for your search. Use city names (e.g., 'Berlin', 'München'), regions, or 'bundesweit' for nationwide results.",
                        "default": "bundesweit"
                    },
                    "search_mode": {
                        "title": "Search Mode",
                        "enum": [
                            "fast_search",
                            "basic_search",
                            "deep_search"
                        ],
                        "type": "string",
                        "description": "Select the level of detail for scraped listings:\n- Fast Search: Only extracts basic info from listing page (quickest)\n- Basic Search: Extracts name, phoneNumber, email, website, description, industry, and address fields (recommended)\n- Deep Search: Extracts all available details including additional business attributes (most comprehensive)",
                        "default": "basic_search"
                    },
                    "sorting": {
                        "title": "Sorting",
                        "enum": [
                            "relevance",
                            "rating"
                        ],
                        "type": "string",
                        "description": "Choose how to sort the search results. Relevance sorts by how well listings match your search terms, while Rating sorts by user reviews and ratings.",
                        "default": "relevance"
                    },
                    "perimeter": {
                        "title": "Perimeter (km)",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Set the search radius around your specified location in kilometers. Only applies when searching in a specific city or area (not for 'bundesweit'). Range: 0-50 km.",
                        "default": 0
                    },
                    "max_businesses": {
                        "title": "Maximum Businesses",
                        "type": "integer",
                        "description": "Maximum number of business listings to extract. Set to 0 for unlimited (will scrape all available results).",
                        "default": 0
                    },
                    "start_index": {
                        "title": "Start Index",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Begin extraction from this listing number (1-based indexing, where 1 is the first result). Useful for resuming interrupted runs or pagination.",
                        "default": 1
                    },
                    "end_index": {
                        "title": "End Index",
                        "type": "integer",
                        "description": "Stop extraction at this listing number (inclusive). Set to 0 to use only the max_businesses limit or extract all available listings.",
                        "default": 0
                    },
                    "requests_per_second": {
                        "title": "Requests Per Second",
                        "type": "integer",
                        "description": "Rate limit for API requests. Lower values minimize blocking risk but run slower. Higher values run faster but may trigger rate limiting. Applied to all search modes.",
                        "default": 12
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Specifies proxy servers that will be used by the scraper in order to hide its origin.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
