# Distressed Property Feed — EU Judicial Auctions (`studio-amba/distressed-property-feed`) Actor

Aggregate distressed real estate signals across Belgium, Spain and France. Runs our Biddit (BE) and Subastas BOE (ES) judicial auction scrapers plus our BODACC (FR) insolvency registry scraper, normalized to one schema: source, country, sale date, reserve price, property type, address.

- **URL**: https://apify.com/studio-amba/distressed-property-feed.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Real estate, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 result scrapeds

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Distressed Property Feed

Aggregate judicial property auctions and insolvency-driven property sales across Belgium, Spain and France in a single run. Give it a list of countries, and it returns one row per auction lot or distress signal: reserve price, sale date, property type, address, and a link back to the source.

This actor does not scrape a website itself. It runs our own Biddit (Belgium), Subastas BOE (Spain) and BODACC (France) scrapers in parallel and normalizes what comes back into one shared schema, so you can pull a cross-border distressed-property feed without learning three different site structures and three different data shapes.

### Why use this actor?

Property investors, notaries, and distressed-asset funds who work across borders currently have to run three separate tools, three separate logins, and three separate output formats to see what's coming up for auction in Belgium, Spain and France. This actor collapses that into one call and one row shape, so a screener or a dashboard only has to understand one schema instead of three.

### What it returns

Each row is either a real scheduled auction lot or a company-level distress signal, and the `itemType` field always tells you which:

- **`auction` rows** (Biddit BE, Subastas BOE ES) — a real judicial or notarial auction with a scheduled end date and a reserve/appraisal price. These are literal auction listings you can bid on.
- **`distress_signal` rows** (BODACC FR) — France's official commercial-announcement registry does not publish scheduled property auctions with a price and a date. It publishes company-level insolvency and business-sale notices. This actor filters those to companies whose name matches a real-estate keyword (default `immobilier`, catching agencies and SCI property-holding companies) and surfaces them as a distress signal, honestly: `reservePrice` is null and `saleDate` is the notice's publication date, not an auction date. Read `saleDateType` on every row before treating a date as a real auction closing time.

```json
[
  {
    "source": "biddit",
    "country": "BE",
    "itemType": "auction",
    "itemTitle": "Charleroi, Rue du Beffroi 36/38",
    "propertyType": "apartment",
    "saleDate": "2026-07-23T12:00:00Z",
    "saleDateType": "auction_end",
    "reservePrice": 50000,
    "currentBid": 60000,
    "address": "Rue du Beffroi 36",
    "city": "Charleroi",
    "postalCode": "6000",
    "region": "Hainaut",
    "url": "https://www.biddit.be/fr/catalog/detail/297723",
    "ownerCompanyName": null,
    "ownerSiren": null,
    "ownerEnrichment": null,
    "raw": { "reference": "297723", "auctionStatus": "CURRENT", "bedrooms": 2, "epcScore": "CLASS_C" },
    "scrapedAt": "2026-07-18T07:04:34.750Z"
  },
  {
    "source": "subastas_boe",
    "country": "ES",
    "itemType": "auction",
    "itemTitle": "C/ DOMINGO MALAGÓN, 10, 6º A, DE PARLA (MADRID)",
    "propertyType": "real_estate",
    "saleDate": "2026-08-05T18:00:00+02:00",
    "saleDateType": "auction_end",
    "reservePrice": 291761,
    "currentBid": null,
    "address": "CALLE DOMINGO MALAGÓN, 10, 6º A, DE PARLA",
    "city": "PARLA",
    "postalCode": "28982",
    "region": "Madrid",
    "url": "https://subastas.boe.es/detalleSubasta.php?idSub=SUB-JA-2026-258876",
    "ownerCompanyName": null,
    "ownerSiren": null,
    "ownerEnrichment": null,
    "raw": { "auctionId": "SUB-JA-2026-258876", "court": "Sección Civil e Instrucción TI Parla", "appraisalValue": "291.761,00 €", "depositAmount": "14.588,05 €" },
    "scrapedAt": "2026-07-18T07:04:27.741Z"
  },
  {
    "source": "bodacc",
    "country": "FR",
    "itemType": "distress_signal",
    "itemTitle": "PIERRE IMMOBILIER, AGENCE BIGNON",
    "propertyType": "business_asset",
    "saleDate": "2026-07-14",
    "saleDateType": "notice_published",
    "reservePrice": null,
    "currentBid": null,
    "address": null,
    "city": "Moulins",
    "postalCode": "03000",
    "region": "03",
    "url": "https://www.bodacc.fr/annonce/detail/A20260132118",
    "ownerCompanyName": "PIERRE IMMOBILIER, AGENCE BIGNON",
    "ownerSiren": "399963008",
    "ownerEnrichment": null,
    "raw": { "noticeFamily": "Ventes et cessions", "court": "Greffe du Tribunal de Commerce de Cusset" },
    "scrapedAt": "2026-07-18T07:05:51.182Z"
  }
]
````

### How to scrape EU property auction data

1. **Pick countries.** Leave `countries` at its default (`["BE", "ES", "FR"]`) for the full cross-border feed, or restrict to one or two.
2. **Optionally scope by region.** `beProvince` (Belgian province code), `esProvince` (Spanish province code, e.g. `28` for Madrid), and `frDepartment` (French department code, e.g. `75` for Paris) narrow each source independently.
3. **Optionally filter by price.** `minReservePrice` / `maxReservePrice` drop auction rows outside a budget. FR distress-signal rows are never price-filtered since they carry no price.
4. **Optionally enrich French rows.** Turn on `enrichFrOwners` to look up the owning company on Pappers (registered address, SIRET, activity, employee range) for up to `maxFrEnrichments` rows per run (default 5, capped to keep cost bounded).
5. **Run it.** Each source runs in parallel; a slow or failing source is skipped after `timeoutPerSourceSecs` and reported in the run's key-value store under `RUN_SUMMARY` rather than failing the whole run.
6. **Read `itemType` before you trust a price or date.** `auction` rows are real scheduled lots. `distress_signal` rows are a company-level signal only — see "What it returns" above.

### Input

| Field | Type | Required | Description |
|-------|------|----------|--------------|
| `countries` | Array | No | Which sources to include: `BE`, `ES`, `FR`. Default: all three |
| `beProvince` | String | No | Belgian province code for Biddit (e.g. `WHT` for Hainaut). Default: all provinces |
| `esProvince` | String | No | Spanish province code for Subastas BOE (e.g. `28` Madrid). Default: all provinces |
| `frSearchQuery` | String | No | BODACC company-name keyword. Default: `immobilier` |
| `frDepartment` | String | No | French department code to scope BODACC. Default: nationwide |
| `minReservePrice` / `maxReservePrice` | Integer | No | Drop auction rows outside this EUR range |
| `enrichFrOwners` | Boolean | No | Look up BODACC companies on Pappers. Default: `false` |
| `maxFrEnrichments` | Integer | No | Cap on Pappers lookups per run. Default: `5` |
| `maxItemsPerSource` | Integer | No | Max items pulled from each country source. Default: `20` |
| `timeoutPerSourceSecs` | Integer | No | Max wait per source before it's skipped. Default: `150` |
| `proxyConfiguration` | Object | No | Override passed to every child scraper. Leave empty to let each source use its own correct country-residential proxy |

### Output fields

| Field | Type | Example |
|-------|------|---------|
| `source` | String | `"biddit"`, `"subastas_boe"`, `"bodacc"` |
| `country` | String | `"BE"`, `"ES"`, `"FR"` |
| `itemType` | String | `"auction"` or `"distress_signal"` |
| `itemTitle` | String | `"Charleroi, Rue du Beffroi 36/38"` |
| `propertyType` | String | `"apartment"`, `"real_estate"`, `"business_asset"` |
| `saleDate` | String | ISO date/time, nullable |
| `saleDateType` | String | `"auction_end"` or `"notice_published"` |
| `reservePrice` | Number | `50000`, nullable |
| `currentBid` | Number | `60000`, nullable |
| `address` | String | Street address, nullable |
| `city` | String | `"Charleroi"` |
| `postalCode` | String | `"6000"` |
| `region` | String | Province or department |
| `url` | String | Link to the original listing/notice |
| `ownerCompanyName` | String | BODACC rows only, nullable |
| `ownerSiren` | String | BODACC rows only, nullable |
| `ownerEnrichment` | Object | Pappers company profile, nullable |
| `raw` | Object | Source-specific fields not folded into the schema above (court, case number, deposit amount, notice family, EPC score, etc.) |
| `scrapedAt` | String | ISO 8601 timestamp |

### Sources wired in

- **Biddit (Belgium)** — Belgium's official notarial online auction platform. Real scheduled auctions with starting price, current bid, and end date.
- **Subastas BOE (Spain)** — Spain's official judicial/notarial/tax-authority auction portal. Filtered to real-estate lots (`assetType: I`), with appraisal value, minimum bid, and deposit amount.
- **BODACC (France)** — France's official commercial-announcement registry. Not a scheduled-auction source — see "What it returns" above for how FR rows are honestly labeled.

**Deliberately not wired in:** Spain's general BOE legal gazette. It covers every ministry and every kind of resolution, not property auctions specifically — Subastas BOE is the purpose-built auction portal and already returns structured auction fields (appraisal value, minimum bid, asset address) that the general gazette does not carry. Adding it would mostly inject off-topic legal noise into a property feed.

### Cost estimate

Priced per result plus a flat per-run start fee. A run pulling 10 items per source across all three countries returns roughly 20-30 rows (auction inventory varies day to day) for well under $1 in credits, including the child-actor calls.

### Limitations

- BODACC (France) has no free-text browsing — every FR query needs a company-name keyword, so `frSearchQuery` is a required lever, not optional context. The default `immobilier` catches real-estate agencies and SCI holding companies, not every property-adjacent insolvency.
- BODACC rows never carry a reserve price or a scheduled auction date. Treat them as leads to investigate, not auction terms to act on directly.
- Auction inventory changes daily. A source returning fewer items than usual can mean genuinely fewer active auctions that day, not a broken scraper — check the run's `RUN_SUMMARY` key-value entry for per-source status before assuming a fault.
- Pappers enrichment (`enrichFrOwners`) adds one extra actor call per enriched row and is capped by `maxFrEnrichments` to keep run cost predictable.

### Related scrapers

- [Biddit Scraper](https://apify.com/studio-amba/biddit-scraper) — the standalone Belgian auction source behind this feed
- [Subastas BOE Scraper](https://apify.com/studio-amba/subastas-boe-scraper) — the standalone Spanish judicial auction source
- [BODACC Scraper](https://apify.com/studio-amba/bodacc-scraper) — the standalone French commercial-announcement registry
- [Pappers Scraper](https://apify.com/studio-amba/pappers-scraper) — French company lookups, used here for optional owner enrichment
- [France Pige Pro](https://apify.com/studio-amba/france-pige-pro) — our cross-portal FSBO lead meta-scraper for the standard (non-distressed) French residential market

# Actor input Schema

## `countries` (type: `array`):

Which country sources to include. Leave all selected for the full feed.

## `beProvince` (type: `string`):

Filter Biddit auctions by Belgian province. Leave empty for all provinces.

## `esProvince` (type: `string`):

Filter Subastas BOE auctions by province code. Examples: '28' Madrid, '08' Barcelona, '46' Valencia. Leave empty for all provinces.

## `frSearchQuery` (type: `string`):

BODACC only supports company-name search, not free browsing. Default 'immobilier' surfaces real-estate agencies and holding companies (SCI) undergoing an insolvency-driven business sale — the closest proxy to a property-distress signal this registry exposes.

## `frDepartment` (type: `string`):

Optional. Restrict BODACC results to a French department. Example: '75' for Paris.

## `minReservePrice` (type: `integer`):

Drop auction items with a reserve/appraisal price below this amount. Does not filter FR business-sale signal rows (they carry no price).

## `maxReservePrice` (type: `integer`):

Drop auction items with a reserve/appraisal price above this amount. Does not filter FR business-sale signal rows (they carry no price).

## `enrichFrOwners` (type: `boolean`):

For BODACC rows, look up the owning company on Pappers (registered address, SIRET, activity, employee range) and attach it to the row. Adds one extra actor call per enriched row, capped by 'Max FR Enrichments'.

## `maxFrEnrichments` (type: `integer`):

Maximum number of BODACC rows to enrich via Pappers per run, most-recent first.

## `maxItemsPerSource` (type: `integer`):

Maximum number of items to pull from each country source.

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

Maximum time to wait for each underlying country scraper to finish. A slow or failing source is skipped after this and reported in the run summary rather than blocking the whole run.

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

Optional override passed to every child scraper. Leave empty to let each country source use its own correct residential proxy (BE/ES/FR) automatically — the recommended default.

## Actor input object example

```json
{
  "countries": [
    "BE",
    "ES",
    "FR"
  ],
  "frSearchQuery": "immobilier",
  "enrichFrOwners": false,
  "maxFrEnrichments": 5,
  "maxItemsPerSource": 10,
  "timeoutPerSourceSecs": 150,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "countries": [
        "BE",
        "ES",
        "FR"
    ],
    "frSearchQuery": "immobilier",
    "maxItemsPerSource": 10,
    "timeoutPerSourceSecs": 150,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/distressed-property-feed").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 = {
    "countries": [
        "BE",
        "ES",
        "FR",
    ],
    "frSearchQuery": "immobilier",
    "maxItemsPerSource": 10,
    "timeoutPerSourceSecs": 150,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/distressed-property-feed").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 '{
  "countries": [
    "BE",
    "ES",
    "FR"
  ],
  "frSearchQuery": "immobilier",
  "maxItemsPerSource": 10,
  "timeoutPerSourceSecs": 150,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call studio-amba/distressed-property-feed --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Distressed Property Feed — EU Judicial Auctions",
        "description": "Aggregate distressed real estate signals across Belgium, Spain and France. Runs our Biddit (BE) and Subastas BOE (ES) judicial auction scrapers plus our BODACC (FR) insolvency registry scraper, normalized to one schema: source, country, sale date, reserve price, property type, address.",
        "version": "0.1",
        "x-build-id": "FabfLe8Xf0Hjoixzh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~distressed-property-feed/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-distressed-property-feed",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/studio-amba~distressed-property-feed/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-distressed-property-feed",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/studio-amba~distressed-property-feed/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-distressed-property-feed",
                "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": {
                    "countries": {
                        "title": "Countries",
                        "type": "array",
                        "description": "Which country sources to include. Leave all selected for the full feed.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "BE",
                                "ES",
                                "FR"
                            ],
                            "enumTitles": [
                                "Belgium (Biddit)",
                                "Spain (Subastas BOE)",
                                "France (BODACC)"
                            ]
                        }
                    },
                    "beProvince": {
                        "title": "Belgium: Province",
                        "type": "string",
                        "description": "Filter Biddit auctions by Belgian province. Leave empty for all provinces."
                    },
                    "esProvince": {
                        "title": "Spain: Province Code",
                        "type": "string",
                        "description": "Filter Subastas BOE auctions by province code. Examples: '28' Madrid, '08' Barcelona, '46' Valencia. Leave empty for all provinces."
                    },
                    "frSearchQuery": {
                        "title": "France: Company Name / Keyword",
                        "type": "string",
                        "description": "BODACC only supports company-name search, not free browsing. Default 'immobilier' surfaces real-estate agencies and holding companies (SCI) undergoing an insolvency-driven business sale — the closest proxy to a property-distress signal this registry exposes."
                    },
                    "frDepartment": {
                        "title": "France: Department Code",
                        "type": "string",
                        "description": "Optional. Restrict BODACC results to a French department. Example: '75' for Paris."
                    },
                    "minReservePrice": {
                        "title": "Minimum Reserve Price (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Drop auction items with a reserve/appraisal price below this amount. Does not filter FR business-sale signal rows (they carry no price)."
                    },
                    "maxReservePrice": {
                        "title": "Maximum Reserve Price (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Drop auction items with a reserve/appraisal price above this amount. Does not filter FR business-sale signal rows (they carry no price)."
                    },
                    "enrichFrOwners": {
                        "title": "Enrich FR items with owner company data",
                        "type": "boolean",
                        "description": "For BODACC rows, look up the owning company on Pappers (registered address, SIRET, activity, employee range) and attach it to the row. Adds one extra actor call per enriched row, capped by 'Max FR Enrichments'.",
                        "default": false
                    },
                    "maxFrEnrichments": {
                        "title": "Max FR Enrichments",
                        "minimum": 0,
                        "maximum": 30,
                        "type": "integer",
                        "description": "Maximum number of BODACC rows to enrich via Pappers per run, most-recent first.",
                        "default": 5
                    },
                    "maxItemsPerSource": {
                        "title": "Max Items Per Source",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of items to pull from each country source.",
                        "default": 20
                    },
                    "timeoutPerSourceSecs": {
                        "title": "Timeout Per Source (seconds)",
                        "minimum": 30,
                        "maximum": 600,
                        "type": "integer",
                        "description": "Maximum time to wait for each underlying country scraper to finish. A slow or failing source is skipped after this and reported in the run summary rather than blocking the whole run.",
                        "default": 150
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration (override)",
                        "type": "object",
                        "description": "Optional override passed to every child scraper. Leave empty to let each country source use its own correct residential proxy (BE/ES/FR) automatically — the recommended default."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
