# Oikotie.fi Real Estate Listings Scraper (`automation-lab/oikotie-fi-real-estate-listings-scraper`) Actor

Scrape Oikotie.fi sale and rental listings with prices, locations, broker details, photos, coordinates, and detail enrichment.

- **URL**: https://apify.com/automation-lab/oikotie-fi-real-estate-listings-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.03 / 1,000 listing saveds

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

## Oikotie.fi Real Estate Listings Scraper

Extract Finnish property listings from Oikotie.fi sale and rental search pages.

The actor collects normalized real estate data for market monitoring, valuation research, broker inventory tracking, and property analytics.

It supports both sale and rental listings and can enrich each result from the listing detail API.

### What does Oikotie.fi Real Estate Listings Scraper do?

- 🏠 Scrapes Oikotie.fi sale listings.
- 🏘️ Scrapes Oikotie.fi rental listings.
- 📍 Preserves city and district search filters from Oikotie URLs.
- 💶 Normalizes prices into numeric fields.
- 📐 Extracts sizes, rooms, and price per square meter.
- 🧭 Includes coordinates when Oikotie provides them.
- 🧑‍💼 Adds broker and realtor fields.
- 🖼️ Saves photo URLs and photo counts.
- 🔗 Includes the original Oikotie listing URL.
- 🕒 Records published and scraped timestamps.

### Who is it for?

#### Real estate investors and valuation teams

- Compare asking prices across Finnish cities, districts, property sizes, and room counts.
- Build comparable-property datasets for valuation models, acquisition screening, and price-per-square-meter analysis.
- Monitor price changes and new supply in target micro-markets before making buy, sell, or hold decisions.

#### Brokerages, agencies, and property portals

- Track competing broker inventory, listing freshness, photo coverage, and agency share of listings.
- Feed portal, CRM, or BI dashboards with structured Oikotie listing data instead of manual copy-paste.
- Watch filtered searches daily or weekly to spot new inventory and removals in your operating area.

#### Rental market analysts and PropTech teams

- Follow city-level rental supply, monthly rent levels, apartment sizes, and district availability.
- Enrich internal property databases with source URLs, normalized prices, coordinates, and broker metadata.
- Power automated reports, alerts, or lead workflows for Finnish housing market products.

#### Journalists, researchers, and public-sector analysts

- Create repeatable snapshots for housing affordability, supply, and regional market movement stories.
- Export clean CSV, Excel, or JSON datasets for reproducible analysis and charting.

### Why use this Oikotie scraper?

Oikotie contains a large share of Finnish housing listings.

Manual monitoring is slow when you need repeated comparable data.

This actor turns search pages into structured rows that are ready for spreadsheets, dashboards, or databases.

It is designed for reliable search coverage first and detail-page enrichment when you need more fields.

### What data can you extract?

| Field | Description |
| --- | --- |
| `listingId` | Oikotie listing ID |
| `sourceUrl` | Original listing URL |
| `mode` | sale, rent, or unknown |
| `listingTitle` | Listing summary |
| `price` | Numeric price |
| `priceText` | Price as shown by Oikotie |
| `address` | Full address when available |
| `city` | City |
| `district` | District / neighborhood |
| `rooms` | Number of rooms |
| `sizeM2` | Living area in square meters |
| `pricePerSqm` | Price per square meter |
| `brokerCompany` | Listing company |
| `photos` | Photo URLs |
| `latitude` / `longitude` | Coordinates |

### How much does it cost to scrape Oikotie real estate listings?

This actor uses pay-per-event pricing.

You pay a small run-start event and then a per-listing event for every saved dataset item. The run-start event is **$0.005**. Listing prices depend on your Apify plan tier; the Free tier is **$0.000065849 per saved listing** and higher paid tiers receive lower per-listing prices.

| Example run | What it does | Estimated Free-plan actor charge* |
| --- | --- | ---: |
| Quick sample | 20 listings from one filtered search | about **$0.0063** |
| City snapshot | 100 listings with detail enrichment | about **$0.0116** |
| Market monitoring batch | 1,000 listings across several URLs | about **$0.0708** |

\*Estimate = `$0.005` run start + saved listings × `$0.000065849` on the Free tier. Apify platform compute, proxy, and storage usage may be billed separately by Apify according to your account plan.

The default input is intentionally small so the first run is inexpensive. Use a higher `maxItems` value for market-wide analysis after confirming the output format fits your workflow.

### How to use the actor

1. Open the actor on Apify.
2. Paste one or more Oikotie search URLs.
3. Choose `auto`, `sale`, or `rent` mode.
4. Set `maxItems`.
5. Keep detail enrichment enabled if you need full addresses, numeric prices, and photo sets.
6. Start the run.
7. Export the dataset as JSON, CSV, Excel, or via API.

### Input options

#### `startUrls`

Paste Oikotie search pages such as:

- `https://asunnot.oikotie.fi/myytavat-asunnot/helsinki`
- `https://asunnot.oikotie.fi/vuokrattavat-asunnot/tampere`
- `https://asunnot.oikotie.fi/myytavat-asunnot`

#### `mode`

Use `auto` for most runs.

Use `sale` or `rent` to force the listing category.

#### `maxItems`

Controls the maximum number of listings saved across all start URLs.

#### `includeDetails`

When enabled, the actor calls the Oikotie detail API for each listing.

This adds richer fields but uses more requests.

### Output example

```json
{
  "listingId": "24569875",
  "sourceUrl": "https://asunnot.oikotie.fi/vuokra-asunnot/tampere/24569875",
  "mode": "rent",
  "listingTitle": "2h+kt+lasitettu parveke, 31,5 m², Aasianpiha 1, Hervanta, Tampere",
  "price": 737,
  "priceText": "737 € / kk",
  "currency": "EUR",
  "address": "Aasianpiha 1, 33720, Tampere",
  "city": "Tampere",
  "rooms": 2,
  "sizeM2": 31.5,
  "brokerCompany": "Vella Kodit",
  "photoCount": 12
}
````

### Tips for best results

- Use Oikotie search URLs after applying filters on the website.
- Run separate jobs for sale and rent if you need clean category snapshots.
- Keep `includeDetails` on for valuation workflows.
- Turn `includeDetails` off for fast lightweight monitoring.
- Use realistic `maxItems` values for recurring scheduled runs.

### Integrations

You can connect the output to:

- Google Sheets for manual review.
- BigQuery for market history.
- PostgreSQL or Snowflake for internal analytics.
- Slack alerts for new listing monitoring.
- CRM tools for broker inventory workflows.
- BI dashboards for price and supply trends.

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/oikotie-fi-real-estate-listings-scraper').call({
  startUrls: [{ url: 'https://asunnot.oikotie.fi/myytavat-asunnot/helsinki' }],
  maxItems: 100,
  includeDetails: true
});
console.log(run.defaultDatasetId);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/oikotie-fi-real-estate-listings-scraper').call(run_input={
    'startUrls': [{'url': 'https://asunnot.oikotie.fi/vuokrattavat-asunnot/tampere'}],
    'maxItems': 100,
    'includeDetails': True,
})
print(run['defaultDatasetId'])
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~oikotie-fi-real-estate-listings-scraper/runs?token=MY-APIFY-TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://asunnot.oikotie.fi/myytavat-asunnot/helsinki"}],"maxItems":100,"includeDetails":true}'
```

### MCP usage

Use this actor from MCP-compatible tools via Apify MCP Server.

MCP URL:

`https://mcp.apify.com/?tools=automation-lab/oikotie-fi-real-estate-listings-scraper`

Claude Code setup:

```bash
claude mcp add apify-oikotie --transport http --url "https://mcp.apify.com/?tools=automation-lab/oikotie-fi-real-estate-listings-scraper"
```

MCP JSON config:

```json
{
  "mcpServers": {
    "apify-oikotie": {
      "url": "https://mcp.apify.com/?tools=automation-lab/oikotie-fi-real-estate-listings-scraper"
    }
  }
}
```

Example prompts:

- "Scrape 50 rental listings from Oikotie Tampere and summarize median rent."
- "Get Helsinki sale listings from Oikotie and group them by district."
- "Monitor Oikotie listings and show new broker inventory this week."

### Scheduling and monitoring

Create an Apify schedule for recurring snapshots.

For market monitoring, run the same filtered URL daily or weekly.

Store each dataset ID so you can compare price and supply changes over time.

### Detail enrichment

Detail enrichment fetches `/api/card/{id}` for each listing.

It can improve numeric price fields, full addresses, coordinates, and media coverage.

If you only need quick search-card data, disable it.

### Sale listing use cases

- Comparable asking-price datasets.
- Broker share-of-listings reports.
- City and district price monitoring.
- New-development supply tracking.
- Photo and description completeness checks.

### Rental listing use cases

- Monthly rent monitoring.
- District supply tracking.
- Rental portfolio benchmarking.
- Vacancy lead discovery.
- Deposit and size comparison.

### Data quality notes

Oikotie fields vary by listing.

Some listings do not include every broker, floor, coordinate, or fee field.

The actor keeps optional fields empty when the source does not provide them.

The `detailFetched` field tells you whether detail enrichment succeeded.

### Legality

This actor extracts publicly available listing data.

Always review Oikotie.fi terms and applicable laws before using scraped data.

Avoid excessive request volumes.

Do not use the data for unlawful discrimination, spam, or privacy-invasive workflows.

### FAQ

#### Is this an official Oikotie integration?

No. This actor is an independent scraper for publicly available Oikotie.fi listing pages.

#### Can I scrape both sale and rental listings?

Yes. Provide both sale and rental search URLs and keep `mode` set to `auto`.

### Troubleshooting

#### Why are some fields empty?

Oikotie does not provide every field for every listing.

Enable detail enrichment for the richest output.

#### Why do city URLs matter?

The actor reads Oikotie page parameters from the URL page, including location filters.

Use the filtered URL you want to reproduce.

#### Why did I get fewer results than `maxItems`?

The search may contain fewer active listings than requested, or Oikotie may return fewer cards for a narrow filter.

### Related scrapers

- https://apify.com/automation-lab/zillow-scraper
- https://apify.com/automation-lab/idealista-scraper
- https://apify.com/automation-lab/rightmove-scraper
- https://apify.com/automation-lab/real-estate-scraper

### Changelog

Initial version extracts Oikotie sale and rental listings with optional detail enrichment.

### Support

If a listing URL or filtered search does not work, include the input JSON and run ID in your support message.

We can use that to reproduce the exact Oikotie search.

### Summary

Oikotie.fi Real Estate Listings Scraper converts Finnish housing search results into structured property data.

Use it for market analysis, broker tracking, valuation support, rental monitoring, and recurring real estate data pipelines.

# Actor input Schema

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

Oikotie.fi search/category URLs to scrape, for example city-specific sale or rental result pages. Leave empty to use the default sale listings search.

## `mode` (type: `string`):

Choose sale, rent, or auto-detect from each Oikotie URL.

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

Maximum number of property listings to save across all start URLs.

## `includeDetails` (type: `boolean`):

Fetch Oikotie detail API for each listing to enrich output with exact numeric prices, full address, coordinates, contacts, and full photo sets.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://asunnot.oikotie.fi/myytavat-asunnot/helsinki"
    },
    {
      "url": "https://asunnot.oikotie.fi/vuokrattavat-asunnot/tampere"
    }
  ],
  "mode": "auto",
  "maxItems": 20,
  "includeDetails": true
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://asunnot.oikotie.fi/myytavat-asunnot/helsinki"
        },
        {
            "url": "https://asunnot.oikotie.fi/vuokrattavat-asunnot/tampere"
        }
    ],
    "mode": "auto",
    "maxItems": 20,
    "includeDetails": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/oikotie-fi-real-estate-listings-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 = {
    "startUrls": [
        { "url": "https://asunnot.oikotie.fi/myytavat-asunnot/helsinki" },
        { "url": "https://asunnot.oikotie.fi/vuokrattavat-asunnot/tampere" },
    ],
    "mode": "auto",
    "maxItems": 20,
    "includeDetails": True,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/oikotie-fi-real-estate-listings-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 '{
  "startUrls": [
    {
      "url": "https://asunnot.oikotie.fi/myytavat-asunnot/helsinki"
    },
    {
      "url": "https://asunnot.oikotie.fi/vuokrattavat-asunnot/tampere"
    }
  ],
  "mode": "auto",
  "maxItems": 20,
  "includeDetails": true
}' |
apify call automation-lab/oikotie-fi-real-estate-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/oikotie-fi-real-estate-listings-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Oikotie.fi Real Estate Listings Scraper",
        "description": "Scrape Oikotie.fi sale and rental listings with prices, locations, broker details, photos, coordinates, and detail enrichment.",
        "version": "0.1",
        "x-build-id": "A3c8q8sKgh6nae55W"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~oikotie-fi-real-estate-listings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-oikotie-fi-real-estate-listings-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/automation-lab~oikotie-fi-real-estate-listings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-oikotie-fi-real-estate-listings-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/automation-lab~oikotie-fi-real-estate-listings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-oikotie-fi-real-estate-listings-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": {
                    "startUrls": {
                        "title": "Oikotie search URLs",
                        "type": "array",
                        "description": "Oikotie.fi search/category URLs to scrape, for example city-specific sale or rental result pages. Leave empty to use the default sale listings search.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "mode": {
                        "title": "Listing mode",
                        "enum": [
                            "auto",
                            "sale",
                            "rent"
                        ],
                        "type": "string",
                        "description": "Choose sale, rent, or auto-detect from each Oikotie URL.",
                        "default": "auto"
                    },
                    "maxItems": {
                        "title": "Maximum listings",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of property listings to save across all start URLs.",
                        "default": 50
                    },
                    "includeDetails": {
                        "title": "Fetch detail pages",
                        "type": "boolean",
                        "description": "Fetch Oikotie detail API for each listing to enrich output with exact numeric prices, full address, coordinates, contacts, and full photo sets.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
