# Propertyfinder Scraper - MENA Real Estate (`parsebird/propertyfinder-scraper`) Actor

Extract Propertyfinder real estate listings across MENA: prices, locations, images, agents, brokers, amenities, and contacts. Export as JSON, CSV, or Excel with API access.

- **URL**: https://apify.com/parsebird/propertyfinder-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 listing 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.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

### Propertyfinder Scraper - MENA Real Estate

Extract structured real estate listings from [Propertyfinder](https://www.propertyfinder.ae/) search result pages across supported MENA domains: UAE, Saudi Arabia, Qatar, Egypt, and Bahrain.

<table><tr>
<td style="border-left:4px solid #E63946;padding:12px 16px;font-weight:600">
Scrape Propertyfinder prices, locations, images, agents, brokers, amenities, contacts, and listing descriptions from search URLs, then export clean data for analysis or automation.
</td>
</tr></table>

<br>

<table>
<tr>
<td colspan="3" style="padding:10px 14px;background:#E63946;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">ParseBird Real Estate</span>
<span style="color:#FECDD3;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Property data at scale</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFF1F2">
🏠 &nbsp;<a href="https://apify.com/parsebird/propertyfinder-scraper" style="color:#E63946;text-decoration:none;font-weight:700;font-size:13px">Propertyfinder Scraper</a><br>
<span style="color:#E63946;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%">
🏡 &nbsp;<a href="https://apify.com/parsebird/fotocasa-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Fotocasa Scraper</a><br>
<span style="color:#78716C;font-size:11px">Spanish real estate listings</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:33%">
🏢 &nbsp;<a href="https://apify.com/parsebird/funda-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Funda.nl Scraper</a><br>
<span style="color:#78716C;font-size:11px">Dutch residential listings</span>
</td>
</tr>
</table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

````

parsebird/propertyfinder-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/propertyfinder-scraper").call(run\_input={"startUrl":\["https://www.propertyfinder.ae/en/search?c=2\&pf=19000\&pt=25000\&fu=0\&rp=y\&ob=mr"],"maxItems":30}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Inputs: startUrl (array of Propertyfinder search URLs, also accepts one string at runtime), maxItems (integer, default 30). Output: nested listing objects with id, property\_type, price, title, location, images, agent, broker, bedrooms, bathrooms, size, share\_url, contact\_options, amenities, description, and apify\_input\_url. API spec: GET https://api.apify.com/v2/acts/parsebird~propertyfinder-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations

````

### What is Propertyfinder Scraper?

**Propertyfinder Scraper** is a Propertyfinder data extraction tool for search result pages on supported MENA sites including `propertyfinder.ae`, `propertyfinder.sa`, `propertyfinder.qa`, `propertyfinder.eg`, and `propertyfinder.bh`. It extracts listing data from the public search page response, preserving nested fields such as prices, locations, images, agent details, broker details, contact options, amenities, and descriptions.

Use it as a **Propertyfinder API alternative** when you need real estate listing data in JSON, CSV, or Excel. You can run it from the Apify Console, schedule recurring monitoring, or connect it to your pipeline with the [Apify API](https://docs.apify.com/api/v2).

### What can Propertyfinder Scraper do?

- 🔎 **Scrape search result URLs** from supported Propertyfinder MENA domains
- **Collect rich listing data** including price, currency, title, property type, location tree, coordinates, size, bedrooms, bathrooms, amenities, and media
- **Extract contact and agency fields** when present in the public page data, including agent, broker, email, phone, and WhatsApp links
- **Paginate automatically** with the `page` query parameter until `maxItems` is reached or no more listings are found
- **Deduplicate listings** across multiple URLs by listing ID or share URL
- **Schedule recurring runs** with [Apify scheduling](https://docs.apify.com/platform/schedules) to monitor new listings and market changes
- **Send data to integrations** such as Google Sheets, Make, Zapier, webhooks, databases, or your own app through [Apify integrations](https://apify.com/integrations)

### What data can you extract from Propertyfinder?

| Field | Description |
|-------|-------------|
| `id`, `listing_id`, `reference` | Propertyfinder listing identifiers and reference codes |
| `property_type`, `property_type_id` | Listing category, such as Apartment or Villa |
| `price` | Nested price object with value, currency, period, and hidden-price status |
| `title`, `description` | Listing title and public description |
| `location`, `location_tree` | Full location, coordinates, slugs, and hierarchy |
| `images`, `images_count` | Listing image URLs and image metadata |
| `agent` | Public agent profile fields when present |
| `broker`, `client` | Broker or agency details when present |
| `bedrooms`, `bathrooms`, `size` | Basic property dimensions and room counts |
| `amenities`, `amenity_names` | Amenities as codes or names, depending on the country site response |
| `contact_options` | Public email, phone, SMS, or WhatsApp contact links when present |
| `share_url`, `details_path` | Listing detail page URL/path |
| `apify_input_url`, `apify_search_url` | Saved listing/detail context and source search URL |

### How to scrape Propertyfinder

1. Open [Propertyfinder](https://www.propertyfinder.ae/) and create the search you want to scrape.
2. Copy the search result URL from your browser.
3. Open [Propertyfinder Scraper](https://apify.com/parsebird/propertyfinder-scraper) on Apify.
4. Paste one or more URLs into **Search URLs**.
5. Set **Max Items** to control how many listings to collect.
6. Click **Start**.
7. Download results in **JSON, CSV, Excel**, or connect through the **Apify API**.

#### Python API example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("parsebird/propertyfinder-scraper").call(run_input={
    "startUrl": [
        "https://www.propertyfinder.ae/en/search?c=2&pf=19000&pt=25000&fu=0&rp=y&ob=mr"
    ],
    "maxItems": 50,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    price = item.get("price", {})
    location = item.get("location", {})
    print(item.get("title"), price.get("value"), price.get("currency"), location.get("full_name"))
````

#### JavaScript API example

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

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("parsebird/propertyfinder-scraper").call({
    startUrl: [
        "https://www.propertyfinder.ae/en/search?c=2&pf=19000&pt=25000&fu=0&rp=y&ob=mr",
    ],
    maxItems: 50,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    const price = item.price ?? {};
    const location = item.location ?? {};
    console.log(`${item.title} - ${price.value ?? "N/A"} ${price.currency ?? ""} - ${location.full_name ?? ""}`);
});
```

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `startUrl` | array | **Yes** | Example UAE search URL | One or more Propertyfinder search result URLs. Runtime also accepts a single string for compatibility. |
| `maxItems` | integer | No | `30` | Maximum number of listings to scrape across all input URLs. |

### Output example

```json
{
    "id": "107310793",
    "category_id": 2,
    "property_type": "Apartment",
    "price": {
        "value": 24000,
        "currency": "AED",
        "period": "yearly",
        "is_hidden": false
    },
    "title": "Affordable 1 Bedroom Apartment | Balcony",
    "location": {
        "full_name": "Al Butina B, Al Butina, Sharjah",
        "coordinates": {
            "lat": 25.371870040893555,
            "lon": 55.40122985839844
        }
    },
    "agent": {
        "name": "Mohamed Ali",
        "email": "m0509879802@gmail.com"
    },
    "broker": {
        "name": "Wahat Alqasba Real Estate",
        "phone": "+971509520009"
    },
    "bedrooms": "1",
    "bathrooms": "1",
    "size": {
        "value": 900,
        "unit": "sqft"
    },
    "share_url": "https://www.propertyfinder.ae/en/plp/rent/apartment-for-rent-sharjah-al-butina-al-butina-b-107310793.html",
    "apify_input_url": "https://www.propertyfinder.ae/en/plp/rent/apartment-for-rent-sharjah-al-butina-al-butina-b-107310793.html"
}
```

Download results in JSON, HTML, CSV, or Excel.

### Use cases

- **Market research** - compare rental and sale prices across cities, neighborhoods, and property types
- **Lead generation** - collect public broker and agent contact fields where Propertyfinder exposes them
- **Investment analysis** - track price, size, amenities, and location patterns over time
- **Listing monitoring** - schedule recurring runs to detect new listings or inventory changes
- **PropTech data pipelines** - feed Propertyfinder listing data into CRMs, dashboards, valuation tools, or BI systems

### How much does it cost to scrape Propertyfinder?

| Event | Free, Bronze, Silver | Gold | Price per 1,000 |
|-------|----------------------|------|-----------------|
| `listing-scraped` | $0.001 | $0.0009 | **$1.00 / $0.90** |

One event is charged each time a Propertyfinder listing is successfully scraped and saved to the dataset. Empty pages and failed requests are not charged.

**Cost examples:**

| Listings | Free, Bronze, Silver | Gold |
|----------|----------------------|------|
| 30 | $0.03 | $0.027 |
| 1,000 | $1.00 | $0.90 |
| 2,000 | $2.00 | $1.80 |

Apify offers a **free trial** with platform credits for new users. Usage depends on your Apify plan, run settings, and any platform-level costs shown in your Apify account.

### How it works

1. Reads one or more Propertyfinder search result URLs from `startUrl`.
2. Validates that each URL belongs to a supported Propertyfinder MENA domain.
3. Fetches the search page using browser-like HTTP headers.
4. Extracts embedded listing JSON from the page response.
5. Unwraps Propertyfinder listing containers into nested listing objects.
6. Adds `apify_input_url` and `apify_search_url`.
7. Deduplicates listings and paginates until `maxItems` is reached.
8. Pushes each listing to the Apify dataset.

### Is it legal to scrape Propertyfinder?

This Actor extracts publicly available data from Propertyfinder search result pages. Scraping public web data is generally considered legal in many jurisdictions, but your use must comply with applicable laws, Propertyfinder terms, privacy rules, and data protection regulations. Do not use personal or contact data for spam, harassment, or unlawful outreach. For general background, read Apify's guide on [web scraping legality](https://blog.apify.com/is-web-scraping-legal/).

### Other Propertyfinder scrapers and related actors

| Actor | Target site | Region |
|-------|-------------|--------|
| [Propertyfinder Scraper](https://apify.com/parsebird/propertyfinder-scraper) | Propertyfinder | MENA |
| [Fotocasa Scraper](https://apify.com/parsebird/fotocasa-scraper) | Fotocasa.es | Spain |
| [Funda.nl Scraper](https://apify.com/parsebird/funda-scraper) | Funda.nl | Netherlands |
| [Funda in Business Scraper](https://apify.com/parsebird/fundainbusiness-scraper) | FundaInBusiness.nl | Netherlands commercial |

Browse more ParseBird actors on the [Apify Store](https://apify.com/parsebird).

### FAQ

**Which Propertyfinder countries are supported?**
The actor validates and supports `propertyfinder.ae`, `propertyfinder.sa`, `propertyfinder.qa`, `propertyfinder.eg`, and `propertyfinder.bh`.

**Can I use one URL instead of an array?**
Yes. The input schema shows `startUrl` as an array for the Apify UI, but the runtime also accepts one string for compatibility with direct JSON input.

**Does this scraper visit individual listing detail pages?**
No. Version 1 extracts listing data from search result page data. This keeps runs faster and lower cost.

**Can I schedule Propertyfinder scraping?**
Yes. Use [Apify schedules](https://docs.apify.com/platform/schedules) to run the actor daily, weekly, hourly, or at any custom interval.

**Can I access Propertyfinder data by API?**
Yes. Every run creates a dataset accessible through the [Apify API](https://docs.apify.com/api/v2), Python client, JavaScript client, or integrations.

**What should I do if a URL returns no results?**
Open the URL in a browser first and confirm it shows live Propertyfinder listings. If it does, reduce `maxItems` for a quick test and check the Issues tab if the problem continues.

# Actor input Schema

## `startUrl` (type: `array`):

Add Propertyfinder search result URLs to scrape. Supported domains include propertyfinder.ae, propertyfinder.sa, propertyfinder.qa, propertyfinder.eg, and propertyfinder.bh.

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

Maximum number of property listings to scrape across all search URLs.

## Actor input object example

```json
{
  "startUrl": [
    "https://www.propertyfinder.ae/en/search?c=2&pf=19000&pt=25000&fu=0&rp=y&ob=mr"
  ],
  "maxItems": 30
}
```

# Actor output Schema

## `dataset` (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 = {
    "startUrl": [
        "https://www.propertyfinder.ae/en/search?c=2&pf=19000&pt=25000&fu=0&rp=y&ob=mr"
    ],
    "maxItems": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/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 = {
    "startUrl": ["https://www.propertyfinder.ae/en/search?c=2&pf=19000&pt=25000&fu=0&rp=y&ob=mr"],
    "maxItems": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/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 '{
  "startUrl": [
    "https://www.propertyfinder.ae/en/search?c=2&pf=19000&pt=25000&fu=0&rp=y&ob=mr"
  ],
  "maxItems": 30
}' |
apify call parsebird/propertyfinder-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Propertyfinder Scraper - MENA Real Estate",
        "description": "Extract Propertyfinder real estate listings across MENA: prices, locations, images, agents, brokers, amenities, and contacts. Export as JSON, CSV, or Excel with API access.",
        "version": "1.0",
        "x-build-id": "07ASn7o3blaBDjzqO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parsebird~propertyfinder-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parsebird-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/parsebird~propertyfinder-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parsebird-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/parsebird~propertyfinder-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parsebird-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",
                "required": [
                    "startUrl"
                ],
                "properties": {
                    "startUrl": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Add Propertyfinder search result URLs to scrape. Supported domains include propertyfinder.ae, propertyfinder.sa, propertyfinder.qa, propertyfinder.eg, and propertyfinder.bh.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of property listings to scrape across all search URLs.",
                        "default": 30
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
