# Bayut & PropertyFinder Scraper - Dubai & GCC Real Estate (`webdatalabs/bayut-propertyfinder-scraper`) Actor

Scrape live Bayut + PropertyFinder listings across the UAE & GCC: price, area, beds, agent, DLD permit, coordinates, images. Enriched with price-per-sqft, deal score vs community median, and days-on-market. One flat row per listing. CSV/JSON.

- **URL**: https://apify.com/webdatalabs/bayut-propertyfinder-scraper.md
- **Developed by:** [WebDataLabs](https://apify.com/webdatalabs) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 5 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 property listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

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

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

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

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

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

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

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

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


# README

## Bayut & PropertyFinder Scraper — Dubai & GCC Real Estate Intelligence

Live property listings from the Gulf's two dominant portals — **Bayut** and **PropertyFinder** — in
one run, returned as one flat row per listing and **enriched with market analytics the raw portals
don't give you**: price-per-sqft, a deal score versus the community median, and days-on-market.

It's the market-intelligence feed the transaction-data vendors don't sell: not just *what's listed*,
but *which listings are priced below their community* and *how long they've been sitting*.

### What you get

One row per listing, ready for a spreadsheet or a model — no nested cleanup:

| Field | Example | Why it matters |
|---|---|---|
| `price` / `currency` | `245000` `AED` | Asking price / rent in the market currency |
| `pricePerSqft` | `101.2` | The comparability metric agents actually use |
| `dealScore` | `15` | **+15 = priced 15% below the community median per sqft** |
| `areaSqft` / `areaSqm` | `2421` / `225` | Both units, always |
| `beds` / `baths` | `3` / `5` | `0` beds = studio |
| `community` / `tower` | `Dubai Marina` / `Marina Gate 1` | Location, resolved |
| `dldPermit` / `verified` | `7131859900` / `true` | DLD / RERA permit + verification flag |
| `agentName` / `agency` | `Sarah Ahmed` / `Betterhomes` | Who to contact |
| `latitude` / `longitude` | `25.08` / `55.14` | Map it, cluster it |
| `daysOnMarket` | `12` | Listing age (today − listed date) — **every run**, spot stale inventory |
| `priceChange` / `newListingFlag` | `-15000` / `false` | Cross-run monitoring (needs scheduled runs) |

#### Example output

```json
{
  "id": "110071926",
  "portal": "propertyfinder",
  "url": "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-downtown-dubai-south-ridge-south-ridge-6-110071926.html",
  "price": 2300000,
  "currency": "AED",
  "purpose": "buy",
  "propertyType": "apartment",
  "areaSqft": 915,
  "areaSqm": 85,
  "beds": 1,
  "baths": 1,
  "community": "Downtown Dubai",
  "tower": "South Ridge 6",
  "developer": null,
  "latitude": 25.18762,
  "longitude": 55.27895,
  "agentName": "Musa Sanusi",
  "agency": "ENGEL & VÖLKERS Dubai - S03",
  "verified": true,
  "dldPermit": "7120166400",
  "title": "Fully Renovated | High Floor | Luxury | Turnkey",
  "listingDate": "2026-07-01T12:33:26.000Z",
  "pricePerSqft": 2513.66,
  "dealScore": 10,
  "daysOnMarket": 5,
  "priceChange": null,
  "newListingFlag": false,
  "imageUrls": ["https://static.shared.propertyfinder.ae/media/images/listing/Z29DY2SH5RKVWC97G1XP6AXXEC/a0da9279.../668x452.jpg"]
}
````

### How to use it

1. Pick your **portals** (Bayut, PropertyFinder, or both).
2. Type a **location** — `Dubai Marina`, `Business Bay`, or just `Dubai`.
3. Choose **Buy** or **Rent**, optionally a **property type**, and a **max listings** cap.
4. Run. Filter the output by `dealScore >= 10` to surface under-priced listings, or sort by
   `daysOnMarket` to find stale inventory ripe for a lower offer.

**Power-user shortcut:** paste a Bayut or PropertyFinder search-result URL into **Search URLs** to
copy its exact filters — the actor detects the portal from the host.

#### Views

- **Overview** — price, price/sqft, beds, area, community, deal score.
- **Deals** — deal-score-forward, to spot below-market listings fast.
- **Monitoring** — price change, new-listing flag, price history (needs scheduled runs).
- **Full** — every field.

### Which countries are covered?

Both portals cover all five markets — United Arab Emirates (default), Saudi Arabia, Qatar, Bahrain
and Egypt. Set **Country** under Advanced; each portal is searched on its per-country domain/index
with the local currency (AED, SAR, QAR, BHD, EGP).

### How does the deal score work?

For every listing we compute price-per-sqft, then compare it to the **median price-per-sqft of the
same community in the same run**. `dealScore = +15` means the listing is 15% cheaper per sqft than
its community median; a negative score means it's above (clamped to ±99 so a different-segment unit
can't read as a misleading extreme). Communities with fewer than four comparable listings return
`null` (we never fabricate a score).

### How do I track price changes?

`daysOnMarket` (listing age) is on **every** run automatically. To also get price movement, enable
**Track days-on-market & price changes** and **schedule** the actor (e.g. daily): each run stores a
per-listing snapshot, so subsequent runs report `priceChange`, `priceHistory` and `newListingFlag`
(the first run establishes the baseline with `newListingFlag = true`).

### Is scraping this data legal?

The actor collects **publicly listed** property data (no logins, no personal buyer data). You are
responsible for using the output in line with each portal's terms and applicable law. Agent contact
details are business listing contacts, published by the portals for enquiry.

### Notes on data honesty

- Fields are `null` when the portal doesn't publish them — never a fabricated `0`, `"N/A"` or
  `"Unknown"`.
- Rent prices reflect the period the portal advertises (usually yearly in the UAE).
- `dealScore` is a *relative* signal within the run's own results, not an appraisal.

### Leave a review

Is this actor saving you time? A quick review on the Store helps other people find it — and tells us which fields to add next. **[Rate this actor →](https://apify.com/webdatalabs/bayut-propertyfinder-scraper)**

# Actor input Schema

## `portals` (type: `array`):

Which property portals to pull listings from.

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

City, community or area to search, e.g. "Dubai Marina", "Business Bay" or "Dubai". Leave empty if you paste search URLs below.

## `purpose` (type: `string`):

Buy (for sale) or Rent.

## `propertyType` (type: `array`):

Which property categories to include. Leave empty for all types.

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

Power-user shortcut: paste one or more Bayut or PropertyFinder search-result URLs to copy their exact filters. Overrides Location.

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

Total listings to return across all selected portals. Keep low for a cheap trial run.

## `trackHistory` (type: `boolean`):

Persist a snapshot each run so scheduled runs report days-on-market, price changes, price history and a new-listing flag. Schedule the actor to build history over time.

## `country` (type: `string`):

Which national market to search (selects the portal domains and currency).

## `priceMin` (type: `integer`):

Minimum price in the market currency (e.g. AED). Leave empty for no minimum.

## `priceMax` (type: `integer`):

Maximum price in the market currency. Leave empty for no maximum.

## `bedsMin` (type: `integer`):

Minimum bedrooms (0 = studio). Leave empty for any.

## `bedsMax` (type: `integer`):

Maximum bedrooms. Leave empty for any.

## `useApifyProxy` (type: `boolean`):

Required for reliable results. Both portals block datacenter/bare IPs; residential proxies rotate to avoid blocks.

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

Defaults to Apify residential. Override the group/country here if needed.

## `maxRetries` (type: `integer`):

Fresh-IP retries when a request is blocked or throttled.

## `bayutAlgoliaKey` (type: `string`):

Leave blank — a working public key is built in. Only paste a value here to self-heal if Bayut rotates its public search key before an updated build ships (copy the apiKey for appId LL8IZ711CS from bayut.com's JS bundle).

## `debug` (type: `boolean`):

Verbose logs for blocks, rotations and parsing.

## Actor input object example

```json
{
  "portals": [
    "bayut",
    "propertyfinder"
  ],
  "location": "Dubai Marina",
  "purpose": "buy",
  "propertyType": [],
  "maxResults": 100,
  "trackHistory": false,
  "country": "AE",
  "useApifyProxy": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxRetries": 8,
  "debug": false
}
```

# Actor output Schema

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

No description

## `deals` (type: `string`):

No description

## `monitoring` (type: `string`):

No description

## `full_data` (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 = {
    "location": "Dubai Marina"
};

// Run the Actor and wait for it to finish
const run = await client.actor("webdatalabs/bayut-propertyfinder-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 = { "location": "Dubai Marina" }

# Run the Actor and wait for it to finish
run = client.actor("webdatalabs/bayut-propertyfinder-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 '{
  "location": "Dubai Marina"
}' |
apify call webdatalabs/bayut-propertyfinder-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bayut & PropertyFinder Scraper - Dubai & GCC Real Estate",
        "description": "Scrape live Bayut + PropertyFinder listings across the UAE & GCC: price, area, beds, agent, DLD permit, coordinates, images. Enriched with price-per-sqft, deal score vs community median, and days-on-market. One flat row per listing. CSV/JSON.",
        "version": "1.0",
        "x-build-id": "TXmTFAntrqapWrvzu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/webdatalabs~bayut-propertyfinder-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-webdatalabs-bayut-propertyfinder-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/webdatalabs~bayut-propertyfinder-scraper/runs": {
            "post": {
                "operationId": "runs-sync-webdatalabs-bayut-propertyfinder-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/webdatalabs~bayut-propertyfinder-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-webdatalabs-bayut-propertyfinder-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": {
                    "portals": {
                        "title": "Portals",
                        "type": "array",
                        "description": "Which property portals to pull listings from.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "bayut",
                                "propertyfinder"
                            ],
                            "enumTitles": [
                                "Bayut",
                                "PropertyFinder"
                            ]
                        },
                        "default": [
                            "bayut",
                            "propertyfinder"
                        ]
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City, community or area to search, e.g. \"Dubai Marina\", \"Business Bay\" or \"Dubai\". Leave empty if you paste search URLs below."
                    },
                    "purpose": {
                        "title": "Purpose",
                        "enum": [
                            "buy",
                            "rent"
                        ],
                        "type": "string",
                        "description": "Buy (for sale) or Rent.",
                        "default": "buy"
                    },
                    "propertyType": {
                        "title": "Property type",
                        "type": "array",
                        "description": "Which property categories to include. Leave empty for all types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "apartment",
                                "villa",
                                "townhouse",
                                "penthouse",
                                "commercial",
                                "land"
                            ],
                            "enumTitles": [
                                "Apartment",
                                "Villa",
                                "Townhouse",
                                "Penthouse",
                                "Commercial",
                                "Land / Plot"
                            ]
                        },
                        "default": []
                    },
                    "startUrls": {
                        "title": "Search URLs (optional)",
                        "type": "array",
                        "description": "Power-user shortcut: paste one or more Bayut or PropertyFinder search-result URLs to copy their exact filters. Overrides Location.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max listings",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Total listings to return across all selected portals. Keep low for a cheap trial run.",
                        "default": 100
                    },
                    "trackHistory": {
                        "title": "Track days-on-market & price changes",
                        "type": "boolean",
                        "description": "Persist a snapshot each run so scheduled runs report days-on-market, price changes, price history and a new-listing flag. Schedule the actor to build history over time.",
                        "default": false
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "AE",
                            "SA",
                            "QA",
                            "BH",
                            "EG"
                        ],
                        "type": "string",
                        "description": "Which national market to search (selects the portal domains and currency).",
                        "default": "AE"
                    },
                    "priceMin": {
                        "title": "Min price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price in the market currency (e.g. AED). Leave empty for no minimum."
                    },
                    "priceMax": {
                        "title": "Max price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price in the market currency. Leave empty for no maximum."
                    },
                    "bedsMin": {
                        "title": "Min bedrooms",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Minimum bedrooms (0 = studio). Leave empty for any."
                    },
                    "bedsMax": {
                        "title": "Max bedrooms",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum bedrooms. Leave empty for any."
                    },
                    "useApifyProxy": {
                        "title": "Use Apify residential proxy",
                        "type": "boolean",
                        "description": "Required for reliable results. Both portals block datacenter/bare IPs; residential proxies rotate to avoid blocks.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Defaults to Apify residential. Override the group/country here if needed.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "maxRetries": {
                        "title": "Max retries per request",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Fresh-IP retries when a request is blocked or throttled.",
                        "default": 8
                    },
                    "bayutAlgoliaKey": {
                        "title": "Bayut Algolia key (optional)",
                        "type": "string",
                        "description": "Leave blank — a working public key is built in. Only paste a value here to self-heal if Bayut rotates its public search key before an updated build ships (copy the apiKey for appId LL8IZ711CS from bayut.com's JS bundle)."
                    },
                    "debug": {
                        "title": "Debug logging",
                        "type": "boolean",
                        "description": "Verbose logs for blocks, rotations and parsing.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
