# Cdiscount Product Scraper | FR Prices & Offers (`lentic_clockss/cdiscount-scraper`) Actor

Scrape Cdiscount.com (France) products — keyword search, categories, campaigns, reconditioned & PDP. Extract prices, GTIN, ratings, sellers, shipping & offers. Export Excel/CSV/JSON.

- **URL**: https://apify.com/lentic\_clockss/cdiscount-scraper.md
- **Developed by:** [kane liu](https://apify.com/lentic_clockss) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Cdiscount Product Scraper | FR Prices, Search & Offers

**Scrape Cdiscount.com product listings, keyword search, categories, campaigns, reconditioned deals, and product detail pages — then download structured French e-commerce data as Excel, CSV, or JSON.**

Use this Actor as a practical **Cdiscount product data API** for price monitoring, marketplace research, and competitor tracking on France’s major online retailer. Choose a mode, set limits, and get Dataset rows with prices, GTINs, ratings, sellers, shipping signals, and product URLs.

- Scrape **Cdiscount keyword search**, **category browse** (`/l-{id}`), **campaign / promo pages** (`/b-…`), **reconditioned** listings, and **product detail pages**
- Extract **price, currency (EUR), title, SKU, categoryId, GTIN/EAN, brand, rating, review count, seller, offers, shipping, energy label**
- Apply **sort / brand / price filters**, mark **sponsored** rows, and set **ship-to country** (FR, BE, ES, IT, DE, …) as a delivery attribute
- Export to **Excel / CSV / JSON**, or connect Make, n8n, Zapier, Python, or the Apify API
- **Pay per event** — Actor start + each Dataset result; **platform usage is included** (you do not pay separate Apify compute on top)

> **Unofficial tool.** This Actor is not affiliated with, endorsed by, or sponsored by Cdiscount. It collects publicly reachable shopping surfaces and does **not** place orders, checkout, or access private accounts. **Voyages / Forfait / Assurance** verticals are out of scope.

---

### What does the Cdiscount Product Scraper do?

Cdiscount Product Scraper lets you **extract structured product data from www.cdiscount.com** without running your own anti-bot browser fleet. Give it a keyword, category id, campaign URL, or product URL / SKU, then start a run.

Under the hood, the Actor:

1. Validates your input (mode, keyword / category / campaign / product, filters)
2. Enforces free-tier caps when you are on a free Apify plan
3. Calls a managed Cloud Run worker (`cdiscount-com`) that opens Cdiscount with residential FR egress
4. Prefers **LPLR preloaded state** on listings (DOM/HTML fallback), and **JSON-LD + offers + BFF** on PDP
5. Pushes Dataset rows ready for Excel / CSV / JSON export
6. Writes `RUN_SUMMARY` (and `ERROR_SUMMARY` on failure) to the key-value store

You run it like any other Apify Actor — schedule it, call it from the API, or plug it into automations.

---

### What Cdiscount data can I extract?

| Data | Keyword search | Category | Campaign | Reconditioned | Product detail |
| --- | :---: | :---: | :---: | :---: | :---: |
| SKU / categoryId / URL | ✅ | ✅ | ✅ | ✅ | ✅ |
| Title (cleaned) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Price / currency (EUR) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Rating / review count | ✅ | ✅ | ✅ | ✅ | ✅ |
| Sponsored flag | ✅ | ✅ | ✅ | ✅ | — |
| Condition (e.g. refurbished) | ✅* | ✅* | ✅* | ✅ | ✅ |
| Brand / seller | ✅* | ✅* | ✅* | ✅* | ✅ |
| GTIN / EAN | — | — | — | — | ✅ |
| Multi-offers / offerCount | — | — | — | — | ✅ |
| Shipping modes (BFF) | — | — | — | — | ✅* |
| Energy label | — | — | — | — | ✅* |
| Ship-to country field | ✅ | ✅ | ✅ | ✅ | ✅ |

\*When present on the page / preloaded state / BFF. Energy labels apply mainly to appliances; many electronics return no label.

---

### Why scrape Cdiscount?

Cdiscount is one of France’s largest e-commerce marketplaces, with deep catalogs across electronics, home, reconditioned devices, and marketplace sellers. Teams scrape Cdiscount for **price monitoring**, **competitive analysis**, and **assortment research**:

- Monitor **French retail prices, promotions, and campaign pages**
- Track **reconditioned (`rcd*`) inventory** and condition flags
- Capture **SKU + GTIN, ratings, sellers, and multi-offer rows** for listing enrichment
- Enrich PDPs with **shipping mode lists** and **EU energy labels** when available
- Feed BI dashboards, pricing tools, or AI agents with structured FR/EUR rows

Compared with single-mode Cdiscount Actors that only accept a search URL **or** only category links, this Actor covers **keyword + category + campaign + reconditioned + product detail**, with **sort/filters, ship-to annotation, and offer/shipping enrich** in one input surface.

---

### How to scrape Cdiscount products (no code required)

1. Create a free [Apify](https://apify.com/) account
2. Open [Cdiscount Product Scraper](https://apify.com/lentic_clockss/cdiscount-scraper)
3. Choose a **mode**: `keywordSearch`, `categoryBrowse`, `campaignBrowse`, `reconditioned`, or `productDetail`
4. Enter a **keyword**, **categoryId** / **categoryUrl**, **campaignUrl**, or **productUrl** / **sku** + **categoryId**
5. *(Optional)* Set `sort`, `brand`, `minPrice` / `maxPrice`, `shipToCountry`, `maxResults`
6. Click **Start** and download the Dataset as JSON, CSV, Excel, or JSONL

Start with `maxResults: 5–10` to verify the query, then scale up.

---

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

This Actor uses **pay-per-event** pricing. You are charged for:

| Event | Price |
| --- | --- |
| Actor Start (`apify-actor-start`) | **$0.005** per start |
| Result (`apify-default-dataset-item`) | **$3.00 / 1,000** results (**$0.003** each) |

**Platform usage costs are included** — you do **not** pay separate Apify compute/proxy usage for this Actor on top of the event prices above (**User pays platform usage costs = No**).

#### Example cost estimates

| Results collected | Approx. event cost* |
| --- | ---: |
| 100 | ~$0.31 |
| 1,000 | ~$3.01 |
| 10,000 | ~$30.01 |

\*Assumes one Actor start at default memory billing for start events, plus `$0.003` per Dataset item. Exact start billing can scale with allocated memory (one start event per GB, minimum one).

#### Free plan limits

On a **free Apify plan**, this Actor enforces developer limits of **10 runs** and **200 results per run**. Upgrade to a paid Apify plan for unlimited runs (event prices still apply).

---

### Input examples

#### Keyword search

```json
{
  "mode": "keywordSearch",
  "keyword": "ssd nvme",
  "maxResults": 40,
  "maxPages": 2,
  "sort": "priceAsc",
  "shipToCountry": "BE"
}
````

#### Category browse

```json
{
  "mode": "categoryBrowse",
  "categoryId": "14404",
  "maxResults": 30,
  "maxPages": 1
}
```

#### Reconditioned

```json
{
  "mode": "reconditioned",
  "keyword": "iphone",
  "maxResults": 20
}
```

#### Product detail (PDP)

```json
{
  "mode": "productDetail",
  "productUrl": "https://www.cdiscount.com/f-10703-m280cs1030500rb.html",
  "fetchBff": true
}
```

#### Campaign browse

```json
{
  "mode": "campaignBrowse",
  "campaignUrl": "https://www.cdiscount.com/b-123456-example.html",
  "maxResults": 25
}
```

***

### Output example

Listing row (search / category):

```json
{
  "sku": "m280cs1030500rb",
  "categoryId": "10703",
  "url": "https://www.cdiscount.com/f-10703-m280cs1030500rb.html",
  "title": "PNY - CS1030 - SSD - 500 Go - M.2 2280 - M280CS1030-500-RB",
  "price": 84.99,
  "currency": "EUR",
  "rating": 4.5,
  "reviewCount": 120,
  "sponsored": false,
  "shipToCountry": "BE",
  "browseCountry": "FR",
  "sourceSurface": "keywordSearch",
  "enginePath": "patchright+lplr"
}
```

PDP row (extra fields when available): `gtin`, `brand`, `offers[]`, `offerCount`, `sellerName`, `shipping`, `energyLabel`, `offerId`.

***

### Coverage matrix

| Dimension | Scope |
| --- | --- |
| Market / host | **FR catalog** on `www.cdiscount.com` / **EUR** |
| Ship-to countries | FR, BE, ES, IT, DE, NL, LU, AT, IE, PT (delivery attribute — **not** separate TLDs) |
| Modes | keywordSearch · campaignBrowse · categoryBrowse · reconditioned · productDetail |
| Features | title DQ · sponsored · condition · sort/filters · LPLR · multi-offers · shipping BFF · energy label |
| Waived | Voyages · mobile Forfait · Assurance · seller onboarding portals |

***

### Tips for better results

- Prefer **keywordSearch** or **categoryBrowse** for bulk discovery; use **productDetail** when you need GTIN, offers, or shipping
- Reconditioned SKUs often start with `rcd*` — use `mode: reconditioned` instead of inventing filter query params
- `shipToCountry` annotates destination eligibility; it does **not** switch the catalog host
- Keep `maxPages` modest first; Cdiscount listing pages can be heavy under bot protection
- Default memory is **1024 MB** — enough for the thin Actor (browser work runs on the worker)

***

### Integrations

- **Apify API / client** — start runs and pull Dataset items programmatically
- **Schedules** — daily/hourly price monitors
- **Webhooks** — notify Slack, Make, or n8n when a run finishes
- **Exports** — Excel, CSV, JSON, JSONL from the Dataset tab

***

### FAQ

#### Is this an official Cdiscount API?

No. It is an unofficial scraper for publicly visible product pages and listings.

#### Can I scrape Cdiscount Belgium / Spain sites?

The catalog host is **France (`www.cdiscount.com`)**. Cross-border delivery destinations can be set via `shipToCountry`; there is no separate `.be` / `.es` catalog mode in this Actor.

#### Why are some energy labels empty?

Many non-appliance products have no EU energy label (BFF returns no content). Appliances often expose `energyLabel.value` (e.g. `A`) from the product page.

#### Do I need my own proxies?

No. The worker provides residential FR egress (`WORKER_PROVIDES_PROXY=1`). You do not configure Apify proxy groups for normal runs.

***

### Support

Open an issue on the Actor’s Apify page if a mode fails on a specific URL or keyword. Include the run ID and a short sample input (no secrets).

# Actor input Schema

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

keywordSearch | campaignBrowse | categoryBrowse | reconditioned | productDetail

## `browseCountry` (type: `string`):

Catalog market (FR only).

## `currency` (type: `string`):

Currency

## `keyword` (type: `string`):

Search keyword (keywordSearch / optional reconditioned).

## `query` (type: `string`):

Query (alias)

## `campaignUrl` (type: `string`):

Campaign URL

## `campaignId` (type: `string`):

Campaign ID

## `campaignSlug` (type: `string`):

Campaign slug

## `categoryUrl` (type: `string`):

Category URL

## `categoryId` (type: `string`):

For categoryBrowse (/l-{id}.html) or productDetail with sku.

## `productUrl` (type: `string`):

Product URL

## `sku` (type: `string`):

SKU

## `page` (type: `integer`):

Start page

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

Max pages

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

Max results

## `enrichDetails` (type: `boolean`):

Enrich with PDP

## `enrichLimit` (type: `integer`):

Enrich limit

## `fetchBff` (type: `boolean`):

Fetch BFF shipping/energy

## `sort` (type: `string`):

relevance | priceAsc | priceDesc | rating | sales

## `brand` (type: `string`):

Brand filter

## `minPrice` (type: `number`):

Min price

## `maxPrice` (type: `number`):

Max price

## `condition` (type: `string`):

new | used | refurbished

## `shipToCountry` (type: `string`):

Delivery destination (same FR catalog).

## `workerBaseUrl` (type: `string`):

Worker base URL override

## Actor input object example

```json
{
  "mode": "keywordSearch",
  "browseCountry": "FR",
  "currency": "EUR",
  "keyword": "ecouteurs",
  "page": 1,
  "maxPages": 3,
  "maxResults": 40,
  "enrichDetails": false,
  "enrichLimit": 3,
  "fetchBff": true
}
```

# Actor output Schema

## `results` (type: `string`):

Normalized Cdiscount product rows from the default dataset.

## `runSummary` (type: `string`):

Structured summary record stored in the default key-value store.

## `inputEcho` (type: `string`):

Normalized input saved at run start.

## `errorSummary` (type: `string`):

Present when a failed run stores structured terminal error information.

# 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 = {
    "keyword": "ecouteurs"
};

// Run the Actor and wait for it to finish
const run = await client.actor("lentic_clockss/cdiscount-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 = { "keyword": "ecouteurs" }

# Run the Actor and wait for it to finish
run = client.actor("lentic_clockss/cdiscount-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 '{
  "keyword": "ecouteurs"
}' |
apify call lentic_clockss/cdiscount-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Cdiscount Product Scraper | FR Prices & Offers",
        "description": "Scrape Cdiscount.com (France) products — keyword search, categories, campaigns, reconditioned & PDP. Extract prices, GTIN, ratings, sellers, shipping & offers. Export Excel/CSV/JSON.",
        "version": "0.1",
        "x-build-id": "pHVD2zjCPxMUGXAuC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lentic_clockss~cdiscount-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lentic_clockss-cdiscount-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/lentic_clockss~cdiscount-scraper/runs": {
            "post": {
                "operationId": "runs-sync-lentic_clockss-cdiscount-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/lentic_clockss~cdiscount-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-lentic_clockss-cdiscount-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": [
                            "keywordSearch",
                            "campaignBrowse",
                            "categoryBrowse",
                            "reconditioned",
                            "productDetail"
                        ],
                        "type": "string",
                        "description": "keywordSearch | campaignBrowse | categoryBrowse | reconditioned | productDetail",
                        "default": "keywordSearch"
                    },
                    "browseCountry": {
                        "title": "Browse country",
                        "enum": [
                            "FR"
                        ],
                        "type": "string",
                        "description": "Catalog market (FR only).",
                        "default": "FR"
                    },
                    "currency": {
                        "title": "Currency",
                        "type": "string",
                        "description": "Currency",
                        "default": "EUR"
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Search keyword (keywordSearch / optional reconditioned)."
                    },
                    "query": {
                        "title": "Query (alias)",
                        "type": "string",
                        "description": "Query (alias)"
                    },
                    "campaignUrl": {
                        "title": "Campaign URL",
                        "type": "string",
                        "description": "Campaign URL"
                    },
                    "campaignId": {
                        "title": "Campaign ID",
                        "type": "string",
                        "description": "Campaign ID"
                    },
                    "campaignSlug": {
                        "title": "Campaign slug",
                        "type": "string",
                        "description": "Campaign slug"
                    },
                    "categoryUrl": {
                        "title": "Category URL",
                        "type": "string",
                        "description": "Category URL"
                    },
                    "categoryId": {
                        "title": "Category ID",
                        "type": "string",
                        "description": "For categoryBrowse (/l-{id}.html) or productDetail with sku."
                    },
                    "productUrl": {
                        "title": "Product URL",
                        "type": "string",
                        "description": "Product URL"
                    },
                    "sku": {
                        "title": "SKU",
                        "type": "string",
                        "description": "SKU"
                    },
                    "page": {
                        "title": "Start page",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Start page",
                        "default": 1
                    },
                    "maxPages": {
                        "title": "Max pages",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Max pages",
                        "default": 3
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Max results",
                        "default": 40
                    },
                    "enrichDetails": {
                        "title": "Enrich with PDP",
                        "type": "boolean",
                        "description": "Enrich with PDP",
                        "default": false
                    },
                    "enrichLimit": {
                        "title": "Enrich limit",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Enrich limit",
                        "default": 3
                    },
                    "fetchBff": {
                        "title": "Fetch BFF shipping/energy",
                        "type": "boolean",
                        "description": "Fetch BFF shipping/energy",
                        "default": true
                    },
                    "sort": {
                        "title": "Sort",
                        "enum": [
                            "relevance",
                            "priceAsc",
                            "priceDesc",
                            "rating",
                            "sales"
                        ],
                        "type": "string",
                        "description": "relevance | priceAsc | priceDesc | rating | sales"
                    },
                    "brand": {
                        "title": "Brand filter",
                        "type": "string",
                        "description": "Brand filter"
                    },
                    "minPrice": {
                        "title": "Min price",
                        "type": "number",
                        "description": "Min price"
                    },
                    "maxPrice": {
                        "title": "Max price",
                        "type": "number",
                        "description": "Max price"
                    },
                    "condition": {
                        "title": "Condition",
                        "enum": [
                            "new",
                            "used",
                            "refurbished"
                        ],
                        "type": "string",
                        "description": "new | used | refurbished"
                    },
                    "shipToCountry": {
                        "title": "Ship-to country",
                        "enum": [
                            "FR",
                            "BE",
                            "ES",
                            "IT",
                            "DE",
                            "NL",
                            "LU",
                            "AT",
                            "IE",
                            "PT"
                        ],
                        "type": "string",
                        "description": "Delivery destination (same FR catalog)."
                    },
                    "workerBaseUrl": {
                        "title": "Worker base URL override",
                        "type": "string",
                        "description": "Worker base URL override"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
