# MediaMarkt Spain Product Scraper (`scraping_crew/mediamarkt`) Actor

Scrape MediaMarkt Spain products, prices, discounts, brands, EANs, categories, ratings, reviews, availability, sellers, images and specifications. Monitor prices, track competitors, analyze electronics catalogs, and collect structured product data for AI, RAG and price intelligence.

- **URL**: https://apify.com/scraping\_crew/mediamarkt.md
- **Developed by:** [Scraping Crew](https://apify.com/scraping_crew) (community)
- **Categories:** E-commerce, AI, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 product results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

### MediaMarkt Spain Product Scraper

**Collect the full MediaMarkt Spain product catalog — current prices, old (pre-discount) prices, brands, EANs, categories, specifications, and images — in one clean, structured dataset.** This scraper reads any [MediaMarkt.es](https://www.mediamarkt.es) category or listing page you point it at, follows pagination automatically, and pulls complete product details for every item. The result is **ready-to-use data for price monitoring, competitor analysis, and AI workflows** — perfectly structured for **LLM and RAG pipelines**, dashboards, and reports.

Running on the Apify platform gives you scheduling, monitoring, proxy rotation, and one-click integrations, so you can keep an always-fresh feed of MediaMarkt Spain prices with no maintenance on your side.

### Features

- 💰 Collect current price, previous (old) price, and shipping cost for every product
- 🏷️ Capture discounts and promotional items across whole categories
- 📦 Full product data — name, brand, category path, EAN, images, ratings, and availability
- ⭐ Customer rating and review count for every product
- 🚚 Delivery / in-store pickup availability and online status
- 🧩 Optional full specification table per product *(paid plans)*
- 📑 Automatic pagination — follows every page of a category listing
- ⚡ Built-in product cache — repeat runs refresh prices without re-scraping full records
- 🛒 Flags third-party (marketplace) seller listings and reports the seller name
- 🧠 Clean, structured output ready for LLM, RAG, and AI workflows
- 🤖 Connect to AI agents and assistants through the Apify MCP server
- 📊 Perfect for product managers, price analysts, and market research
- 🌍 Scrape a single category, several at once, or the whole catalog
- 📥 Export as JSON, CSV, HTML, or Excel, or pull straight into your tools via integrations

### Why use the MediaMarkt Spain Scraper?

- ✅ **Track prices and discounts** — collect current and old prices, ready-made input for price and discount analysis.
- ✅ **Get the full product catalog** — specifications, brand, EAN, categories, and images in one row per product.
- ✅ **Cheap recurring monitoring** — the built-in cache means repeat runs mainly refresh prices instead of re-collecting everything.
- ✅ **Clean, structured data for LLM / RAG / AI workflows** — feed it straight into your models.
- ✅ **Works with AI agents via MCP** — call the scraper directly from Claude, ChatGPT, and other assistants.
- ✅ **Build price history over time** — schedule runs and watch prices move.
- ✅ **Fully hands-off on Apify** — scheduling, monitoring, proxies, and integrations included.

### How to use the MediaMarkt Spain Scraper

1. Click **Try for free** / add the scraper to your Apify account.
2. In the **Input** tab, paste one or more **category URLs** from mediamarkt.es (e.g. a televisions or laptops listing page).
3. Optionally set a **maximum number of items** to keep a test run small and fast.
4. *(Optional, paid plans)* Turn on **Extract product specifications** to collect the full spec table for each product (if provided). Products with specs are cached and reused (based on your apify plan)
5. *(Optional)* Enable **RESIDENTIAL proxy** for the most reliable large runs.
6. Click **Start** / **Run**.
7. When the run finishes, open the **Output** tab and **download your data** as JSON, CSV, HTML, or Excel — or connect it to your other tools.

That's it — no code, no setup, no maintenance.

### Input

You can configure the scraper with a few simple options in the **Input** tab:

- **Start URLs** — the MediaMarkt.es category / listing pages you want to scrape. The scraper follows pagination from each one.
- **Max items** — stop the run after this many products. The run stops **exactly** at this limit — the spider halts the moment the cap is reached and drops any queued requests (set to `0` for unlimited).
- **Extract product specifications** — turn on to collect the full technical specification table (`specs_table`) for every product. This makes one extra product-detail request per product. **Available on paid plans only** — ignored on the free tier.
- **Proxy configuration** — optional proxy settings to keep runs reliable.

#### Input example

```json
{
    "startUrls": [
        { "url": "https://www.mediamarkt.es/es/category/televisores-701164.html" }
    ],
    "maxItems": 100,
    "getSpecs": true,
    "proxyConfiguration": { "useApifyProxy": true }
}
````

### Output

Every run produces a clean dataset where each row is one product, including its name, brand, category path, identifiers, current and previous price, shipping cost, rating, availability, seller, and image links. Discounted products carry their pre-discount `old_price`, so you can immediately see what is on offer and by how much. When **Extract product specifications** is enabled (paid plans), each product also carries a full `specs_table`.

The **Output** tab shows the results in a structured table — with an image thumbnail, name, brand, current/old price, shipping cost, rating and review count, category, product ID, seller and marketplace flag, delivery/pickup availability, online status, EANs, part numbers, product/listing links, and (on paid plans) the full specifications list. You can download the dataset in various formats such as **JSON, HTML, CSV, or Excel**, or access it through the Apify API and integrations for use in your own tools, spreadsheets, dashboards, or AI pipelines.

#### Output example

Each dataset item represents a single product:

```json
{
    "name": "TV LED 55\" LG 55UR78006LK 4K UHD Smart TV",
    "prod_id": "1719234",
    "product_url": "https://www.mediamarkt.es/es/product/_lg-55ur78006lk-1719234.html",
    "listing_url": "https://www.mediamarkt.es/es/category/televisores-701164.html",
    "category": "TV y Audio|Televisores|Televisores LED",
    "brand": "LG",
    "eans": ["8806091623456"],
    "price": "499.00",
    "old_price": "599.00",
    "shipping_price": 0,
    "rating": 4.5,
    "reviews_count": 128,
    "is_third_seller": false,
    "seller": "MediaMarkt Es",
    "is_available_for_delivery": true,
    "is_available_for_pickup": true,
    "online_status": "AVAILABLE",
    "images": [
        "https://assets.mmsrg.com/isr/166325/c1/-/ASSET_MMS_XXXXXX/fee_786_587_png"
    ],
    "specs_table": [
        { "key": "Resolución", "value": "4K UHD (3840 x 2160)" },
        { "key": "Tamaño de pantalla", "value": "55 pulgadas" },
        { "key": "Smart TV", "value": "Sí" },
        { "key": "HDMI", "value": "3" }
    ]
}
```

> When a product is not discounted, `old_price` is empty. `eans` is a list because a product can carry more than one identifier. `specs_table` is present only when specification extraction is enabled (paid plans).

### Data table

| Field | Description |
|-------|-------------|
| `name` | Product title as shown on MediaMarkt Spain |
| `prod_id` | Unique product code (SKU) used by the store |
| `product_url` | Direct link to the product page |
| `listing_url` | The source category/listing URL the product was found on |
| `category` | Full category path the product belongs to |
| `brand` | Manufacturer / brand name |
| `eans` | Product barcode identifier(s) |
| `part_nums` | Manufacturer part number(s) |
| `price` | Current selling price (in EUR) |
| `old_price` | Previous price, when the product is discounted (in EUR) |
| `shipping_price` | Shipping cost for the product (in EUR) |
| `rating` | Average overall customer rating |
| `reviews_count` | Total number of customer reviews |
| `is_third_seller` | Whether the listing is sold by a third-party marketplace seller |
| `seller` | Seller name — the marketplace seller, or MediaMarkt itself |
| `is_available_for_delivery` | Whether the product can be delivered |
| `is_available_for_pickup` | Whether the product can be picked up in store |
| `online_status` | Online availability status of the product |
| `images` | Links to the product images |
| `specs_table` | Full technical specification list (key/value pairs) — **paid plans only** |

### Use with AI agents (MCP)

This scraper works with the **Model Context Protocol (MCP)**, so AI agents and assistants can run it and use its data directly. Through the **Apify MCP server**, tools like **Claude**, **ChatGPT**, and other MCP-compatible assistants can trigger the scraper, ask for MediaMarkt Spain prices in plain language, and pull the results straight into a conversation or an automated workflow — no manual exporting needed. This makes it a natural fit for **AI shopping assistants, price-monitoring agents, and RAG pipelines** that need fresh, structured product data on demand.

### How much does it cost to scrape MediaMarkt Spain?

Costs depend on how many products you collect and how often you run the scraper. A quick test with a small **Max items** limit costs very little, while a full-category run is larger.

The scraper is built for **affordable ongoing monitoring**: after the first run, repeat runs mainly **refresh prices** from the cache instead of re-collecting every product from scratch, which keeps recurring price-tracking runs fast and cheap. New Apify accounts include free monthly usage credits, so you can try it at no cost.

#### How caching works

- ✅ **First crawl:** Downloads every product page and stores the extracted record in a persistent cache keyed by product ID.
- ✅ **Later crawls:** For cached products, only the listing page is fetched and the cached record is reused, **while the current and old price are refreshed from the latest listing**. Only new or previously uncached products require an additional product-detail request.
- ✅ Cached entries remain available until they expire according to your selected storage plan.

> **Note:** Product details (name, images, specifications, etc.) are served from the cache, but **prices are always updated from the latest listing** on every run, ensuring pricing remains current while minimizing bandwidth and proxy usage.

### Free User Limitations

- **Product specification extraction is paid-only.** On the free tier the **Extract product specifications** option is ignored, so the `specs_table` field is omitted from the output. Every other field — name, brand, current and old price, shipping cost, rating, review count, availability, seller, images, categories, and identifiers — is still collected in full for free users.
- **Everything else is unrestricted.** Full catalog scraping, pagination, the product cache, and the exact `maxItems` stop work the same on the free and paid tiers. To enable per-product specifications, [upgrade to a paid plan](https://apify.com/pricing).

### Tips and advanced options

- Start with a small **Max items** value to preview the data before a full run.
- Add several **category URLs** in one run to cover multiple product groups at once.
- **Schedule** the scraper to run daily or weekly to build a price history and spot trends and discounts over time.
- Enable **proxy** for the most reliable large runs — MediaMarkt may rate-limit heavy unproxied traffic.
- Re-run on the same categories to benefit from the cache: prices refresh cheaply without re-scraping full product records.

### FAQ, disclaimers, and support

**In what language and currency is the data?** Product names, categories, and specifications are in Spanish, matching the source store, and prices are in EUR.

**Why did my run stop after N products?** The run stops exactly at the **Max items** limit you configured. Set it to `0` to collect the full category.

**Is scraping MediaMarkt legal?** This Actor collects only publicly available product data. You are responsible for using the data in compliance with MediaMarkt's Terms of Service and applicable laws. Do not collect personal or sensitive data.

**Something looks off or missing?** Use the **Issues** tab to report a problem or request a feature — feedback is welcome and helps improve the scraper.

**Need a custom solution?** If you need extra fields, a different MediaMarkt country store, or a tailored data feed, custom scraping solutions can be arranged.

### SEO Keywords

MediaMarkt scraper, MediaMarkt Spain scraper, MediaMarkt.es scraper, MediaMarkt price tracker, MediaMarkt price monitoring, MediaMarkt product data, MediaMarkt catalog scraper, MediaMarkt API, Spanish electronics prices, Spain electronics price scraper, electronics price scraper, price monitoring, product monitoring, price comparison, price intelligence, discount tracking, competitor price monitoring, retail price analysis, product catalog scraper, product data extraction, e-commerce data extraction, product specifications scraper, EAN product data, price analyst tools, LLM ready data, RAG dataset, AI training data, MCP server, Model Context Protocol, AI agent scraper, Claude MCP, ChatGPT integration

# Actor input Schema

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

MediaMarkt.es category / listing pages to scrape. The scraper follows pagination from each one.

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

Stop the run after this many products. The run stops exactly at this limit. Set to 0 for unlimited.

## `getSpecs` (type: `boolean`):

Collect the full technical specification table (specs\_table) for every product. This requires an extra product-detail request per product. Available on paid plans only — ignored on the free tier.

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

Specifies proxy servers that will be used by the scraper in order to hide its origin.Recommended is RESIDENTIAL

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.mediamarkt.es/es/category/tv-oled-3991.html"
    }
  ],
  "maxItems": 10,
  "getSpecs": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.mediamarkt.es/es/category/tv-oled-3991.html"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraping_crew/mediamarkt").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://www.mediamarkt.es/es/category/tv-oled-3991.html" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scraping_crew/mediamarkt").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://www.mediamarkt.es/es/category/tv-oled-3991.html"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scraping_crew/mediamarkt --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "MediaMarkt Spain Product Scraper",
        "description": "Scrape MediaMarkt Spain products, prices, discounts, brands, EANs, categories, ratings, reviews, availability, sellers, images and specifications. Monitor prices, track competitors, analyze electronics catalogs, and collect structured product data for AI, RAG and price intelligence.",
        "version": "0.0",
        "x-build-id": "3Cyj59uxQfYThreWA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraping_crew~mediamarkt/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraping_crew-mediamarkt",
                "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/scraping_crew~mediamarkt/runs": {
            "post": {
                "operationId": "runs-sync-scraping_crew-mediamarkt",
                "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/scraping_crew~mediamarkt/run-sync": {
            "post": {
                "operationId": "run-sync-scraping_crew-mediamarkt",
                "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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "MediaMarkt.es category / listing pages to scrape. The scraper follows pagination from each one.",
                        "default": [
                            {
                                "url": "https://www.mediamarkt.es/es/category/tv-oled-3991.html"
                            }
                        ],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop the run after this many products. The run stops exactly at this limit. Set to 0 for unlimited.",
                        "default": 10
                    },
                    "getSpecs": {
                        "title": "Extract product specifications",
                        "type": "boolean",
                        "description": "Collect the full technical specification table (specs_table) for every product. This requires an extra product-detail request per product. Available on paid plans only — ignored on the free tier.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Specifies proxy servers that will be used by the scraper in order to hide its origin.Recommended is RESIDENTIAL",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
