# Pagesdor.be / Goudengids.be Business Directory Scraper (`trev0n/pagesdor-be-scraper`) Actor

Scrape Belgium's largest Yellow Pages (Pagesdor.be FR / Goudengids.be NL). Extract company contacts, phones, websites, VAT, categories, ratings and GPS coordinates by keyword+city or direct URLs.

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

## Pricing

$7.00 / 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.

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

## 🇧🇪 Pagesdor.be / Goudengids.be Business Directory Scraper

🎯 **Belgium's Yellow Pages, ready for your CRM, in seconds.**

This scraper collects clean, structured business records from Belgium's largest professional directory — Pagesdor.be (French) and its Dutch twin Goudengids.be — including company names, phone numbers, websites, full addresses, VAT (BCE) numbers, GPS coordinates, ratings, social profiles and email addresses. Filter by category and city, drop in profile URLs, or build B2B lead lists at scale.

---

### 🚀 What Does It Do?

This scraper automatically pulls **publicly listed Belgian businesses** from Pagesdor.be and Goudengids.be and turns them into ready-to-use spreadsheets, CRM imports, or webhook payloads. No copy-pasting, no manual browsing — just plug in your filters and hit Start.

💡 **Three modes of operation:**

1. **🔍 Discovery Mode** — provide a category and a Belgian city ("plombier" + "Liège"), the scraper finds everything matching.
2. **🌐 Search URL Mode** — paste any Pagesdor.be / Goudengids.be category URL (e.g. `/entreprises/Bruxelles/restaurants/`) and harvest the results.
3. **📋 Direct URL Mode** — supply specific business profile URLs and pull only those companies.

---

### 👥 Who Is This For?

| 🏢 Use Case                       | 💬 How It Helps                                                          |
| --------------------------------- | ------------------------------------------------------------------------ |
| 📞 **B2B Outbound Sales**         | Build cold-call and cold-email lists of Belgian SMEs by trade and region |
| 📊 **Market Research**            | Map competitors and supplier landscapes across Belgian cities            |
| 🤝 **Lead Generation Agencies**   | Deliver freshly-mined contact databases to your end clients              |
| 🧭 **Local Service Marketplaces** | Onboard verified local providers without manual data entry               |
| 🎯 **Targeted Advertising**       | Build remarketing audiences segmented by sector and zip code             |
| 📍 **Location Intelligence**      | Plot businesses on a map using built-in GPS coordinates                  |

---

### ✨ Features

- 🇫🇷🇳🇱 **Bilingual coverage** — French (Pagesdor.be) and Dutch (Goudengids.be) sides of the same directory
- 📞 **Multiple phone numbers per business** — primary + secondary lines automatically deduplicated
- 🌐 **Real company websites** — UTM tracking parameters stripped automatically
- 📧 **Email addresses** when publicly listed on the profile
- 🗺️ **GPS coordinates (latitude/longitude)** included for every record
- 🆔 **VAT / BCE company numbers** when available
- ⭐ **Ratings & review counts** straight from the public profile
- 📱 **Social media links** — Facebook, Instagram, LinkedIn, YouTube, TikTok
- 🎛️ **Smart Filters** — by city, postal code, business category, language
- ⚡ **Fast & Scalable** — hundreds of records per minute, lightweight HTTP-only architecture
- 🔁 **Deduplication** — every result keyed by Pagesdor business ID, no duplicates across pages
- 📤 **Export Anywhere** — Download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM

---

### 🎛️ Filters & Options

| Option                       | What It Does                                                                                       |
| ---------------------------- | -------------------------------------------------------------------------------------------------- |
| 🌍 **Search URLs**           | Paste any Pagesdor / Goudengids category URL — the scraper paginates from there                    |
| 🔍 **Keyword**               | Trade or service name in French or Dutch ("avocat", "loodgieter", "boulangerie")                   |
| 📍 **Location**              | Belgian city or postal code ("Bruxelles", "Antwerpen", "1000", "2000")                             |
| 🇫🇷🇳🇱 **Language**            | French (Pagesdor.be) or Dutch (Goudengids.be)                                                      |
| 🔗 **Direct URLs**           | Skip search and scrape specific business profile URLs you already have                             |
| 🧐 **Extract Full Details**  | Visit each profile for phones, website, email, VAT, social — toggle off for fast listing-only mode |
| 🔢 **Max Items**             | Stop after N businesses — set 0 for unlimited                                                      |
| 🚦 **Max Concurrency**       | Tune speed vs. risk of being throttled                                                             |
| ⏱️ **Max Requests / Minute** | Throttle for stable runs at scale                                                                  |
| 🌐 **Proxy Configuration**   | Belgian residential proxies recommended for large-volume jobs                                      |

---

### 📦 What You Get (Output Fields)

Every business record includes:

#### Identity

| Field      | Example                                                                 |
| ---------- | ----------------------------------------------------------------------- |
| id         | `L6998046`                                                              |
| name       | `Atlantide (l')`                                                        |
| url        | `https://www.pagesdor.be/entreprise/Bruxelles/L6998046/Atlantide+(l')/` |
| category   | `Restaurants`                                                           |
| categories | `["Restaurants", "Cuisine grecque"]`                                    |

#### Contact

| Field       | Example                                                          |
| ----------- | ---------------------------------------------------------------- |
| phone       | `+3227362002`                                                    |
| phones      | `["+3227362002", "+32485872939"]`                                |
| email       | `atlantide@skynet.be`                                            |
| website     | `https://atlantideresto.be/`                                     |
| socialLinks | `["https://www.facebook.com/pages/L-Atlantide/196599640363329"]` |

#### Address & Location

| Field         | Example           |
| ------------- | ----------------- |
| streetAddress | `Rue Franklin 73` |
| postalCode    | `1000`            |
| city          | `Bruxelles`       |
| country       | `BE`              |
| latitude      | `50.845325`       |
| longitude     | `4.387079`        |

#### Business Details

| Field        | Example                                            |
| ------------ | -------------------------------------------------- |
| vatNumber    | `BE 0123.456.789`                                  |
| rating       | `3.3`                                              |
| reviewsCount | `3`                                                |
| description  | `Cuisine hellénique, organisation de banquets.`    |
| logo         | `https://media.pagesdor.be/.../atlantide-logo.png` |
| openingHours | `["Mo-Fr 12:00-15:00", "Mo-Sa 18:30-23:00"]`       |

#### Metadata

| Field     | Example                    |
| --------- | -------------------------- |
| scrapedAt | `2026-05-06T19:48:04.773Z` |

---

### 📊 Example Output

```json
{
    "id": "L6998046",
    "name": "Atlantide (l')",
    "url": "https://www.pagesdor.be/entreprise/Bruxelles/L6998046/Atlantide+(l')/",
    "category": "Restaurants",
    "categories": ["Restaurants"],
    "phone": "+3227362002",
    "phones": ["+3227362002", "+32485872939"],
    "email": "atlantide@skynet.be",
    "website": "https://atlantideresto.be/",
    "socialLinks": ["https://www.facebook.com/pages/L-Atlantide/196599640363329"],
    "streetAddress": "Rue Franklin 73",
    "postalCode": "1000",
    "city": "Bruxelles",
    "country": "BE",
    "latitude": 50.845325,
    "longitude": 4.387079,
    "vatNumber": null,
    "rating": 3.3,
    "reviewsCount": 3,
    "description": "Cuisine hellénique proposant kolokithokeftedes et agneau à l'origan, et organisation de banquets.",
    "logo": null,
    "openingHours": null,
    "scrapedAt": "2026-05-06T19:48:04.773Z"
}
````

***

### 📋 Dataset Views

The Apify Console gives you **3 ready-made table views** to quickly browse your results:

| View                   | What It Shows                                                              |
| ---------------------- | -------------------------------------------------------------------------- |
| 📊 **Overview**        | Name, category, city, primary phone, website, rating                       |
| 💼 **Lead Generation** | Optimized for outbound: company, phones, email, website, full address, VAT |
| 📋 **Full Details**    | Every single field — the complete dataset                                  |

***

### ❓ FAQ

**🤔 Does the scraper cover both Pagesdor.be and Goudengids.be?**
Yes — both share the same backend. Use language `fr` for Pagesdor (French) and `nl` for Goudengids (Dutch). Profile URLs from either side work in Direct URL mode.

**🤔 How fresh is the data?**
Each run hits Pagesdor / Goudengids live, so what you get is exactly what's published right now.

**🤔 How many results can I extract per category?**
Pagesdor returns up to ~40 businesses per category page — to go deeper, supply multiple search URLs (different cities, postal codes, sub-categories) or use Direct URL mode for specific companies.

**🤔 What's the difference between fast mode and full mode?**
Listing-only mode (extractDetails=false) gives you ~10 fields per business in seconds. Full mode (extractDetails=true) visits every profile to add email, VAT, website, social links and extended description.

**🤔 Can I export the data?**
Yes — JSON, CSV, Excel, XML, HTML, RSS. You can also push data directly to Google Sheets, Zapier, Make, or any webhook/API endpoint.

**🤔 How often should I run this?**
For fresh data, run weekly or monthly. You can schedule automatic runs on Apify with just a few clicks.

**🤔 Does it work with proxies?**
Yes — Belgian residential proxies are recommended for the most reliable, large-volume runs. The scraper works seamlessly with Apify's built-in proxy service.

***

### 🛠️ Need Custom Filters or Features?

**I'm happy to customize this scraper for your specific needs!** 🤝

Whether you need:

- 🎯 Additional filters (Belgian provinces, NACE codes, postal-code ranges, only-with-email, only-with-website)
- 📊 Extra data fields or custom output formats (CRM-ready CSV, Salesforce mapping, HubSpot import format)
- 🔄 Integration with your CRM, Google Sheets, or database
- ⏰ Scheduled scraping with automatic deduplication and change detection
- 🌐 Scraping from other Yellow Pages platforms alongside Pagesdor — PagesJaunes.fr (France), GelbeSeiten.de (Germany), 192.com (UK), Yell.com, Yelp

👉 **Don't hesitate to reach out via private message** — I respond quickly and I'm always open to building exactly what you need. No request is too small or too specific!

***

### ⚖️ Legal & Ethical Use

This scraper collects **only publicly available information** from Pagesdor.be and Goudengids.be. It does not access private data, bypass authentication, or extract anything not already visible to any visitor. Please use the data responsibly and in compliance with applicable laws (GDPR for personal data) and the platforms' terms of service.

# Actor input Schema

## `searchUrls` (type: `array`):

Pagesdor.be (FR) or Goudengids.be (NL) category/search URLs. Examples: https://www.pagesdor.be/entreprises/Bruxelles/restaurants/ , https://www.goudengids.be/bedrijven/Antwerpen/loodgieters/ , https://www.pagesdor.be/bedrijven/?what=plombier\&where=Liege

## `keyword` (type: `string`):

Business category or keyword (e.g. 'restaurant', 'plombier', 'loodgieter', 'avocat'). Used only when searchUrls is empty.

## `location` (type: `string`):

Belgian city or postal code (e.g. 'Bruxelles', 'Antwerpen', 'Liège', '1000', '2000'). Used only when searchUrls is empty.

## `language` (type: `string`):

Language for keyword-based search. 'fr' uses Pagesdor.be, 'nl' uses Goudengids.be. Default: fr.

## `directUrls` (type: `array`):

Optional list of individual business profile URLs to scrape directly (e.g. https://www.pagesdor.be/entreprise/Bruxelles/L10024179/NETGLOBERS/). Bypasses search.

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

Maximum number of businesses to extract (0 = unlimited). Note: each search URL returns up to 40 results from page 1; for larger volumes use multiple search URLs or directUrls.

## `extractDetails` (type: `boolean`):

Visit each business's profile page to extract phones, website, VAT/BCE number, opening hours, social links and full address. When false, only listing-page fields (name, short address, category) are returned.

## `maxConcurrency` (type: `integer`):

Max parallel requests (1-10). Higher is faster but more likely to trigger Imperva blocks. Default 4 is balanced.

## `maxRequestsPerMinute` (type: `integer`):

Throttle requests to avoid rate limits. 120 is safe with residential proxies; lower if you see frequent retries.

## `maxRequestRetries` (type: `integer`):

How many times to retry a failed request (recommended: 5+ when Imperva is active).

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

Proxy settings. Belgian residential proxies are recommended to avoid Imperva/Incapsula blocks at high volumes.

## Actor input object example

```json
{
  "searchUrls": [
    {
      "url": "https://www.pagesdor.be/entreprises/Bruxelles/restaurants/"
    }
  ],
  "keyword": "restaurant",
  "location": "Bruxelles",
  "language": "fr",
  "maxItems": 100,
  "extractDetails": true,
  "maxConcurrency": 4,
  "maxRequestsPerMinute": 120,
  "maxRequestRetries": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BE"
  }
}
```

# Actor output Schema

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

No description

## `leadGeneration` (type: `string`):

No description

## `fullDetails` (type: `string`):

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "searchUrls": [
        {
            "url": "https://www.pagesdor.be/entreprises/Bruxelles/restaurants/"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "BE"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("trev0n/pagesdor-be-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 = {
    "searchUrls": [{ "url": "https://www.pagesdor.be/entreprises/Bruxelles/restaurants/" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "BE",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("trev0n/pagesdor-be-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 '{
  "searchUrls": [
    {
      "url": "https://www.pagesdor.be/entreprises/Bruxelles/restaurants/"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BE"
  }
}' |
apify call trev0n/pagesdor-be-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Pagesdor.be / Goudengids.be Business Directory Scraper",
        "description": "Scrape Belgium's largest Yellow Pages (Pagesdor.be FR / Goudengids.be NL). Extract company contacts, phones, websites, VAT, categories, ratings and GPS coordinates by keyword+city or direct URLs.",
        "version": "1.0",
        "x-build-id": "drm8kR3fiOVRhuAZ7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/trev0n~pagesdor-be-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-trev0n-pagesdor-be-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/trev0n~pagesdor-be-scraper/runs": {
            "post": {
                "operationId": "runs-sync-trev0n-pagesdor-be-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/trev0n~pagesdor-be-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-trev0n-pagesdor-be-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": {
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Pagesdor.be (FR) or Goudengids.be (NL) category/search URLs. Examples: https://www.pagesdor.be/entreprises/Bruxelles/restaurants/ , https://www.goudengids.be/bedrijven/Antwerpen/loodgieters/ , https://www.pagesdor.be/bedrijven/?what=plombier&where=Liege",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "keyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Business category or keyword (e.g. 'restaurant', 'plombier', 'loodgieter', 'avocat'). Used only when searchUrls is empty."
                    },
                    "location": {
                        "title": "Location (city)",
                        "type": "string",
                        "description": "Belgian city or postal code (e.g. 'Bruxelles', 'Antwerpen', 'Liège', '1000', '2000'). Used only when searchUrls is empty."
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "fr",
                            "nl"
                        ],
                        "type": "string",
                        "description": "Language for keyword-based search. 'fr' uses Pagesdor.be, 'nl' uses Goudengids.be. Default: fr.",
                        "default": "fr"
                    },
                    "directUrls": {
                        "title": "Direct Profile URLs",
                        "type": "array",
                        "description": "Optional list of individual business profile URLs to scrape directly (e.g. https://www.pagesdor.be/entreprise/Bruxelles/L10024179/NETGLOBERS/). Bypasses search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of businesses to extract (0 = unlimited). Note: each search URL returns up to 40 results from page 1; for larger volumes use multiple search URLs or directUrls.",
                        "default": 100
                    },
                    "extractDetails": {
                        "title": "Visit Each Profile for Full Details",
                        "type": "boolean",
                        "description": "Visit each business's profile page to extract phones, website, VAT/BCE number, opening hours, social links and full address. When false, only listing-page fields (name, short address, category) are returned.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Max parallel requests (1-10). Higher is faster but more likely to trigger Imperva blocks. Default 4 is balanced.",
                        "default": 4
                    },
                    "maxRequestsPerMinute": {
                        "title": "Max Requests / Minute",
                        "minimum": 10,
                        "maximum": 600,
                        "type": "integer",
                        "description": "Throttle requests to avoid rate limits. 120 is safe with residential proxies; lower if you see frequent retries.",
                        "default": 120
                    },
                    "maxRequestRetries": {
                        "title": "Max Request Retries",
                        "minimum": 0,
                        "maximum": 15,
                        "type": "integer",
                        "description": "How many times to retry a failed request (recommended: 5+ when Imperva is active).",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Belgian residential proxies are recommended to avoid Imperva/Incapsula blocks at high volumes.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "BE"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
