# Carrefour.es Grocery Products, Prices & EAN Scraper (`abotapi/carrefour-es-scraper`) Actor

Scrape Carrefour Spain (carrefour.es) products. Search by keyword, browse a category, or paste product/category links. Returns name, brand, price, unit price, promotion, stock, category, image, and, with details, the barcode (EAN), ingredients, allergens, nutrition, extra images and rating.

- **URL**: https://apify.com/abotapi/carrefour-es-scraper.md
- **Developed by:** [Abot API](https://apify.com/abotapi) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 product results

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Carrefour Spain Product Scraper

Scrape products from **Carrefour Spain** (`carrefour.es`) — the supermarket and
general‑retail catalog. Search by keyword, browse a category, fetch specific
products, or paste links. Every product comes back as one flat record with price,
unit price, promotion, stock and category; enable details to add the barcode
(EAN), ingredients, allergens, the full nutrition panel, extra images and the
product's aggregate rating.

### What you can do

- **Search by keyword** — e.g. `leche` (milk), `cerveza` (beer), `pañales`
  (diapers) — with price, promotion, stock and rating filters, plus sorting.
- **Browse a category** — paste a Carrefour category page link and walk it across
  all its pages.
- **Paste links or ids** — mix product links, bare product ids and category links
  in one list and let the actor route each entry. Product links return full detail.

### Input

| Field | Description |
|---|---|
| **Mode** | `search`, `category` or `url`. |
| **Search keywords** | Keywords to search (search mode). Each is searched separately. |
| **Category links** | Carrefour category page links to browse (category mode). |
| **Carrefour Spain links or product ids** | Product links, bare product ids and category links to scrape directly, mixed freely (url mode). Product links return full detail. |
| **Sort by** | Relevance, price ↑/↓, unit price ↑/↓, or name. Applied over the collected products. |
| **Minimum average rating** | Keep only products rated at least N stars (needs details). |
| **Only on promotion** | Keep only products with a reduced price. |
| **Only in stock** | Keep only products currently in stock. |
| **Min / Max price (EUR)** | Keep only products within a price range. |
| **Fetch product details** | Add barcode, ingredients, allergens, nutrition, extra images and rating. On by default. |
| **Max products** | The run's cap on how many products to return. Default 20; `0` = unlimited. |
| **Max pages per keyword / category** | Optional safety bound on result pages. Leave empty for no page limit — the run stops at *Max products*. |
| **Proxy** | Apify Proxy — a Spanish residential exit by default (required, see below). |
| `mcpConnectors` | Optional MCP connectors to export results into (Notion, Linear, Airtable, Apify). |
| `notionParentPageUrl` | Notion connector only: page under which item pages are created. |
| `maxNotifyListings` | Cap on items exported to each connector per run. Does not affect the dataset. |

### Output

One record per product. With details off you get the listing‑level fields; with
details on you also get barcode, ingredients, allergens, nutrition and rating.
Example (illustrative values):

```json
{
  "productId": "520661336",
  "name": "Leche semidesnatada marca ejemplo brik 1 L",
  "brand": "Marca Ejemplo",
  "ean": "8400000000000",
  "price": 0.99,
  "regularPrice": 1.19,
  "unitPrice": 0.99,
  "unitPriceMeasure": "l",
  "currency": "EUR",
  "onPromotion": true,
  "discountPercentage": 17,
  "inStock": true,
  "stock": 240,
  "categoryId": "cat00000",
  "ingredients": "Leche de vaca semidesnatada.",
  "allergens": ["Leche"],
  "nutrition": [{ "name": "Valor energético", "value": "46 kcal" }],
  "rating": 4.5,
  "reviewCount": 12,
  "reviews": [],
  "image": "https://static.carrefour.es/example/000000.jpg",
  "images": ["https://static.carrefour.es/example/000000.jpg"],
  "url": "https://www.carrefour.es/supermercado/example/R-520661336/p",
  "searchMode": "search",
  "scrapedAt": "2026-01-01T00:00:00Z"
}
````

**Ratings & reviews.** Products carry an aggregate rating (`rating`,
`reviewCount`) where the catalog exposes one. Individual customer review *text* is
not published in the catalog, so the `reviews` array is present but empty on rated
products, and rating fields are simply absent on products with no rating (never
fabricated zeros).

### Proxy & connection

Apify Proxy is **required**. Carrefour Spain serves its catalog only to Spanish
residential connections, so the actor uses a **Spanish residential** exit by
default. On the Free plan (no residential proxy access) results may be empty —
enable Apify Proxy or upgrade your plan at <https://apify.com/pricing>.

### Send results into your apps (MCP connectors)

Optionally pipe results into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the `mcpConnectors` field. Each connector receives a condensed, human-readable summary per product (title plus key fields), while the complete record always stays in the Apify dataset. For Notion, set `notionParentPageUrl` to the page the item pages should be created under. Supported connectors: Notion, Linear, Airtable, and Apify. Leave the field empty to skip; it never changes the dataset output.

### Notes

- Search and category result pages are walked forward one page at a time until
  *Max products* (or *Max pages*) is reached.
- `searchMode` on each record reports how it was found: `search`, `category`, or
  `product` when it came from a pasted product link or id.
- Prices are in **EUR**. Spanish price strings are normalized to numbers.
- Duplicate products (same id) are returned once per run.

# Actor input Schema

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

Choose 'search' for keywords + filters, 'category' to browse a category by its Carrefour category link, or 'url' to scrape pasted Carrefour Spain links — product links, bare product ids and category links are all accepted.

## `queries` (type: `array`):

Only used when mode = search — ignored in every other mode. One or more keywords to search, for example 'leche' (milk) or 'cerveza' (beer). Each keyword is searched separately.

## `categories` (type: `array`):

Only used when mode = category — ignored in every other mode. One or more Carrefour category page links, each walked separately across its result pages. To get one: open carrefour.es, browse to the category you want, and copy the address from your browser — a category address ends in /catNNNNN/c , for example https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c

## `sortBy` (type: `string`):

How to order the collected products. Applied over the products gathered in the run before they are returned.

## `minRating` (type: `string`):

Optional. Only keep products whose average rating is at least this many stars. Requires details (ratings are collected during 'Fetch product details'). Products with no rating are excluded when this is set.

## `onPromotionOnly` (type: `boolean`):

Optional. Keep only products currently on promotion (a reduced price versus the regular price).

## `inStockOnly` (type: `boolean`):

Optional. Keep only products currently in stock.

## `minPrice` (type: `integer`):

Optional. Only keep products priced at or above this amount.

## `maxPrice` (type: `integer`):

Optional. Only keep products priced at or below this amount.

## `urls` (type: `array`):

Only used when mode = url — ignored in every other mode. Mix freely: product pages under /R-<id>/p , category pages under /catNNNNN/c , or bare product ids such as 521007071 . Multiple entries supported.

## `fetchDetails` (type: `boolean`):

Collect each product's full detail (barcode / EAN, ingredients, allergens, nutrition panel, extra images) plus its aggregate rating. Turn off for a faster, lighter run that returns only the listing-level fields (name, brand, price, unit price, promotion, stock, image).

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

Maximum number of products to return across the whole run. This is the run's cap. Use 0 for unlimited.

## `maxPages` (type: `integer`):

Optional safety bound on result pages walked per keyword / category / link. Leave empty for no page limit — the run stops at Max products.

## `proxy` (type: `object`):

Apify Proxy is required for reliable results. The actor connects through a Spanish residential exit by default.

## `mcpConnectors` (type: `array`):

Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).

## `notionParentPageUrl` (type: `string`):

URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.

## `maxNotifyListings` (type: `integer`):

Cap on items written to each connector per run. Does not affect the dataset.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "leche"
  ],
  "categories": [
    "https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c"
  ],
  "sortBy": "relevance",
  "minRating": "0",
  "onPromotionOnly": false,
  "inStockOnly": false,
  "urls": [
    "https://www.carrefour.es/supermercado/R-521007071/p",
    "https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c"
  ],
  "fetchDetails": true,
  "maxItems": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "ES"
  },
  "maxNotifyListings": 50
}
```

# 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 = {
    "queries": [
        "leche"
    ],
    "categories": [
        "https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c"
    ],
    "urls": [
        "https://www.carrefour.es/supermercado/R-521007071/p",
        "https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "ES"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/carrefour-es-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 = {
    "queries": ["leche"],
    "categories": ["https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c"],
    "urls": [
        "https://www.carrefour.es/supermercado/R-521007071/p",
        "https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c",
    ],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "ES",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/carrefour-es-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 '{
  "queries": [
    "leche"
  ],
  "categories": [
    "https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c"
  ],
  "urls": [
    "https://www.carrefour.es/supermercado/R-521007071/p",
    "https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "ES"
  }
}' |
apify call abotapi/carrefour-es-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Carrefour.es Grocery Products, Prices & EAN Scraper",
        "description": "Scrape Carrefour Spain (carrefour.es) products. Search by keyword, browse a category, or paste product/category links. Returns name, brand, price, unit price, promotion, stock, category, image, and, with details, the barcode (EAN), ingredients, allergens, nutrition, extra images and rating.",
        "version": "1.0",
        "x-build-id": "LdhCxg5FNUAIFWwGy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~carrefour-es-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-carrefour-es-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/abotapi~carrefour-es-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-carrefour-es-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/abotapi~carrefour-es-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-carrefour-es-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "category",
                            "url"
                        ],
                        "type": "string",
                        "description": "Choose 'search' for keywords + filters, 'category' to browse a category by its Carrefour category link, or 'url' to scrape pasted Carrefour Spain links — product links, bare product ids and category links are all accepted.",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "Only used when mode = search — ignored in every other mode. One or more keywords to search, for example 'leche' (milk) or 'cerveza' (beer). Each keyword is searched separately.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "categories": {
                        "title": "Category links",
                        "type": "array",
                        "description": "Only used when mode = category — ignored in every other mode. One or more Carrefour category page links, each walked separately across its result pages. To get one: open carrefour.es, browse to the category you want, and copy the address from your browser — a category address ends in /catNNNNN/c , for example https://www.carrefour.es/supermercado/lacteos-huevos/leche/cat20093/c",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "relevance",
                            "price_asc",
                            "price_desc",
                            "unit_price_asc",
                            "unit_price_desc",
                            "name"
                        ],
                        "type": "string",
                        "description": "How to order the collected products. Applied over the products gathered in the run before they are returned.",
                        "default": "relevance"
                    },
                    "minRating": {
                        "title": "Minimum average rating",
                        "enum": [
                            "0",
                            "3",
                            "4",
                            "5"
                        ],
                        "type": "string",
                        "description": "Optional. Only keep products whose average rating is at least this many stars. Requires details (ratings are collected during 'Fetch product details'). Products with no rating are excluded when this is set.",
                        "default": "0"
                    },
                    "onPromotionOnly": {
                        "title": "Only products on promotion",
                        "type": "boolean",
                        "description": "Optional. Keep only products currently on promotion (a reduced price versus the regular price).",
                        "default": false
                    },
                    "inStockOnly": {
                        "title": "Only products in stock",
                        "type": "boolean",
                        "description": "Optional. Keep only products currently in stock.",
                        "default": false
                    },
                    "minPrice": {
                        "title": "Minimum price (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional. Only keep products priced at or above this amount."
                    },
                    "maxPrice": {
                        "title": "Maximum price (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional. Only keep products priced at or below this amount."
                    },
                    "urls": {
                        "title": "Carrefour Spain links or product ids",
                        "type": "array",
                        "description": "Only used when mode = url — ignored in every other mode. Mix freely: product pages under /R-<id>/p , category pages under /catNNNNN/c , or bare product ids such as 521007071 . Multiple entries supported.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch product details",
                        "type": "boolean",
                        "description": "Collect each product's full detail (barcode / EAN, ingredients, allergens, nutrition panel, extra images) plus its aggregate rating. Turn off for a faster, lighter run that returns only the listing-level fields (name, brand, price, unit price, promotion, stock, image).",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Max products",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of products to return across the whole run. This is the run's cap. Use 0 for unlimited.",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "Max pages per keyword / category",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Optional safety bound on result pages walked per keyword / category / link. Leave empty for no page limit — the run stops at Max products."
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy is required for reliable results. The actor connects through a Spanish residential exit by default.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "ES"
                        }
                    },
                    "mcpConnectors": {
                        "title": "Pipe results into your apps (optional)",
                        "type": "array",
                        "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page (Notion connector only)",
                        "type": "string",
                        "description": "URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export per connector",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on items written to each connector per run. Does not affect the dataset.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
