# Interencheres Scraper — Hammer Prices & Auction Results (`dr1ms/interencheres-auction-scraper`) Actor

Extract French auction data from interencheres.com including realized HAMMER PRICES (results mode), bilingual AI image captions, auctioneer GPS + email, and vehicle history flags. JSON API based — fast, no browser, no login.

- **URL**: https://apify.com/dr1ms/interencheres-auction-scraper.md
- **Developed by:** [Adrien](https://apify.com/dr1ms) (community)
- **Categories:** E-commerce, Lead generation, Social media
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Interencheres Auction Scraper — Hammer Prices, Sales & Auctioneers

Extract structured auction data from **interencheres.com**, France's largest auction platform (5,000+ live lots, 1,700+ upcoming sales, 500+ auction houses), straight from its internal JSON API — **no browser, no login, no HTML parsing**.

> **The differentiator: realized hammer prices.** The `results` mode returns lots that were **actually sold, with the real auction price** (`auctionedPrice`) — the single most valuable data point of the auction market, and it requires no account. Competing scrapers only return estimates and calendars.

### Why this actor

- 🔨 **Realized hammer prices** (`results` mode) — what lots *actually* sold for, not just estimates. Price discovery for art, watches, vehicles, industrial equipment.
- 🖼️ **AI-generated bilingual image captions** — every photo ships with a French + English vision alt-text written by the platform's AI. Ready-made training/labeling data, unique to this actor.
- 📍 **Exact GPS + direct email of every auction house** — no geocoding, no guessing. B2B-ready contact data.
- 🚗 **Vehicle intelligence** — `hasVehicleHistoryReport`, `hasTechnicalInspection`, mileage characteristics on vehicle lots.
- 🌍 **Native FR/EN bilingual titles and descriptions** — international resale without a translation step.
- 🏛️ **Official registry enrichment** (option) — SIREN, NAF code and company category of each auction house from the French government companies API.
- ⚡ **API-fast** — ~5 requests per 1,000 lots. No Playwright, no residential proxies needed.
- 🛰️ **Standby mode** — query lots/results on the fly over HTTP, one GET at a time, in addition to classic batch runs.

### Modes

| Mode | What you get | Index size (observed) |
|---|---|---|
| `results` | **Sold lots with realized hammer prices** | the premium dataset |
| `lots` | Upcoming & current lots with estimates, images, sale info | 200,000+ |
| `sales` | Sales calendar (or past sales with results PDFs via `pastSales`) | 1,700+ / 23,800+ |
| `organizations` | Auction houses directory: GPS, email, phone, CVV agreement | 500+ |
| `tracker` | Incremental scan — only lots scheduled since the last run | — |

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | enum | `results` | `lots` / `results` / `sales` / `organizations` / `tracker` |
| `query` | string | — | Full-text keyword (e.g. `montre`, `Rolex`) |
| `filters` | object | `{}` | Typed pass-through filters, validated before any network call (see below) |
| `maxItems` | integer | `100` | `0` = everything (always bounded by the API's real total) |
| `locale` | enum | `fr-FR` | `fr-FR` or `en-US` (short `fr` is rejected by the API) |
| `pastSales` | boolean | `false` | `sales` mode: query the 23k+ ended sales with results PDFs |
| `trackerSince` | string | — | `tracker` mode: ISO lower bound (else persisted state, else last 24h) |
| `enrichOrganizations` | boolean | `false` | Add `siren`/`nafCode`/`companyCategory` from the official registry |
| `maxConcurrency` | integer | `4` | Parallel API requests (measured safe pace: 3–5 req/s) |
| `proxyConfiguration` | object | Apify proxy | Defaults to Apify (datacenter) proxy on the platform — required, Cloudflare rejects direct platform IPs. RESIDENTIAL (FR) as fallback |
| `enableTelemetry` | boolean | `false` | Operator cost report in logs only — **nothing is ever sent externally** |

Supported `filters` keys: `auctioned` (0/1), `sale`, `organization`, `area` (department), `country`, `category_leaves_ids` (id, list or CSV), `estimates_lower`, `estimates_upper`, `estimates_range` (`"min,max"`), `datetime_range` (`"fromISO,toISO"`), `location` (`{"lat":48.85,"lon":2.35,"distance":"50km"}`), `live_is_on_air`, `live_has_started`, `live_limited`, `highlight`, `sale_states_canceled`. Filter names and types are validated **before** any request; an invalid one fails fast with the exact culprit named.

#### Example input — hammer prices for watches

```json
{
    "mode": "results",
    "query": "montre",
    "maxItems": 500,
    "enrichOrganizations": true
}
````

#### Example input — vehicles within 50 km of Lyon, estimated under €5,000

```json
{
    "mode": "lots",
    "filters": {
        "location": { "lat": 45.76, "lon": 4.84, "distance": "50km" },
        "estimates_upper": 5000
    },
    "maxItems": 1000
}
```

#### Example input — daily incremental tracker

```json
{
    "mode": "tracker",
    "maxItems": 0
}
```

Schedule it daily: each run picks up exactly where the previous one stopped (the window bound is persisted in a named key-value store).

### Output

One flat, clean JSON record per lot / sale / auction house. camelCase fields, no raw HTML, no null noise, `scrapedAt` timestamp on every record. Image URLs are absolute `https`.

#### Example output (mode `results`, 3 lots)

```json
[
    {
        "recordType": "lot",
        "id": 87548155,
        "url": "https://www.interencheres.com/art-decoration/-681691/lot-87548155.html",
        "titleFr": "Fort lot de bijoux fantaisie et montres",
        "titleEn": "Large batch of costume jewellery and watches",
        "categorySlug": "art-decoration",
        "categoryLeafIds": [562],
        "lotNumber": 232,
        "estimateMin": 50,
        "estimateMax": 80,
        "sold": true,
        "auctionedPrice": 100,
        "auctionedType": "secret_order",
        "currency": "EUR",
        "saleId": 681691,
        "saleDatetime": "2026-06-11T11:00:00+00:00",
        "saleCity": "NOGENT-SUR-MARNE",
        "organizationName": "Me Christophe Lucien",
        "organizationEmail": "contact@lucienparis.com",
        "organizationLat": 48.837,
        "organizationLon": 2.482,
        "images": [
            {
                "url": "https://thumbor-indbupload.interencheres.com/2026/06/09/201234.jpg",
                "thumbnailUrl": "https://thumbor-indbupload.interencheres.com/fit-in/200x200/201234.jpg",
                "width": 1200,
                "height": 1600,
                "captionFr": "gros plan d'une montre sur un support",
                "captionEn": "close-up of a watch on a stand"
            }
        ],
        "hasShipping": true,
        "lastUpdated": "2026-06-09T18:17:14.551Z",
        "scrapedAt": "2026-06-11T14:02:11.480394+00:00"
    },
    {
        "recordType": "lot",
        "id": 87411210,
        "url": "https://www.interencheres.com/art-decoration/-680904/lot-87411210.html",
        "titleFr": "Chronographe Suisse. Montre de poignet à boitier circulaire en or 18k",
        "titleEn": "Swiss chronograph. 18k gold circular-case wristwatch",
        "estimateMin": 600,
        "estimateMax": 800,
        "sold": true,
        "auctionedPrice": 720,
        "currency": "EUR",
        "saleId": 680904,
        "organizationName": "ETUDE ALBAN GILLET",
        "organizationSiren": "478221324",
        "organizationNafCode": "82.99Z",
        "scrapedAt": "2026-06-11T14:02:11.581114+00:00"
    },
    {
        "recordType": "lot",
        "id": 87390013,
        "url": "https://www.interencheres.com/vehicules/-680118/lot-87390013.html",
        "titleFr": "PEUGEOT 205 GTI 1.9",
        "estimateMin": 12000,
        "estimateMax": 15000,
        "sold": true,
        "auctionedPrice": 14200,
        "currency": "EUR",
        "hasVehicleHistoryReport": true,
        "hasTechnicalInspection": true,
        "organizationName": "Maître Frédéric DELOBEAU",
        "saleCity": "Amiens",
        "scrapedAt": "2026-06-11T14:02:11.633901+00:00"
    }
]
```

### Standby mode (HTTP API)

The actor also runs as a permanent HTTP service. One GET = one search, billed per item returned:

```
GET https://<your-standby-hostname>/search?mode=results&query=montre&maxItems=20
GET https://<your-standby-hostname>/search?mode=lots&auctioned=1&sale=681691
GET https://<your-standby-hostname>/search?mode=organizations&country=FR&maxItems=100
```

`GET /` returns a health check with the list of modes and filters. Full contract in `.actor/openapi.json`.

### Limitations — honest list

- **Lot page URLs can expire.** `url` is rebuilt from the site's own sitemap pattern; pages of ended sales are removed by the site after some time (HTTP 404), while the data stays in this dataset.
- **Hammer prices exist only where the auction house publishes them.** `auctionedPrice` covers lots sold through the platform with published results; `priceIsConfirmed` tells you whether the house confirmed the figure.
- **Registry enrichment is fuzzy.** Auction houses are matched by name (no SIRET on the source side); ~no-match is possible and the record is then delivered without `siren`.
- **Rate limits at extreme volume are untested.** The measured pace (3–5 req/s) showed zero blocking through the default Apify datacenter proxy; if you run tens of thousands of requests per day and hit 429/403, switch `proxyConfiguration` to RESIDENTIAL (FR) groups.
- **`city` filter is not supported** (rejected by the site's API validator) — use `location` (GPS + radius) or `area` (department) instead.
- The actor deliberately does **not** scrape the HTML search pages (disallowed by robots.txt); it only uses the public JSON search service.

### Changelog

- **v0.1** — Initial release: 5 modes (lots, results, sales, organizations, tracker), Standby HTTP mode, pay-per-event billing, government registry enrichment, AI caption extraction, state persistence & incremental tracking.

# Actor input Schema

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

What to extract. `lots` = upcoming/current lots. `results` = SOLD lots with realized hammer prices (premium data). `sales` = auction sales calendar. `organizations` = auction houses directory. `tracker` = incremental scan of lots whose SALE DATE falls in the window since the last run (the window bound is persisted between runs).

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

Full-text search keyword (e.g. `montre`, `Rolex`, `Peugeot 205`). Leave empty to scan the whole index.

## `filters` (type: `object`):

Typed pass-through filters, validated before any network call. Supported keys: `auctioned` (0/1), `sale` (id), `organization` (id), `area` (department number), `country` (e.g. FR), `category_leaves_ids` (id or list), `estimates_lower`/`estimates_upper` (EUR), `estimates_range` ("min,max"), `datetime_range` ("fromISO,toISO"), `location` ({"lat","lon","distance":"50km"}), `live_is_on_air`/`live_has_started`/`live_limited`/`highlight`/`sale_states_canceled` (0/1).

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

Maximum number of items to push to the dataset. 0 = everything available (the run is always bounded by the real total reported by the API).

## `maxConcurrency` (type: `integer`):

Simultaneous API requests. The measured safe pace is 3-5 req/s; raising this above 5 is rarely useful.

## `maxRequestRetries` (type: `integer`):

Retries with exponential backoff on network errors, 429 and 5xx.

## `locale` (type: `string`):

API locale. Must be a full tag (`fr-FR` or `en-US`) — the short form `fr` is rejected by the API. Titles and descriptions are returned in BOTH languages regardless.

## `pastSales` (type: `boolean`):

In `sales` mode only: query the history of ENDED sales with their results PDF (23k+ sales) instead of the upcoming sales calendar.

## `trackerSince` (type: `string`):

In `tracker` mode only: ISO 8601 lower bound of the scan window (e.g. `2026-06-10T00:00:00Z`). If empty, the bound persisted by the previous tracker run is used (default window: last 24h).

## `enrichOrganizations` (type: `boolean`):

Premium: fuzzy-match each auction house against the official French companies registry (recherche-entreprises.api.gouv.fr) and add `siren`, `nafCode`, `companyCategory`. No-match is tolerated and never blocks the run.

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

Apify proxy is required on the platform: Cloudflare rejects direct connections from Apify datacenter IPs. Defaults to Apify proxy automatically when left empty. Switch to RESIDENTIAL (FR) groups only if datacenter IPs start getting blocked.

## `enableTelemetry` (type: `boolean`):

Prints an end-of-run cost/efficiency report in the run log. Nothing is ever sent to any external service — disabled by default.

## Actor input object example

```json
{
  "mode": "results",
  "query": "montre",
  "filters": {},
  "maxItems": 100,
  "maxConcurrency": 4,
  "maxRequestRetries": 4,
  "locale": "fr-FR",
  "pastSales": false,
  "enrichOrganizations": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "enableTelemetry": false
}
```

# Actor output Schema

## `results` (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 = {
    "query": "montre",
    "filters": {},
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("dr1ms/interencheres-auction-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 = {
    "query": "montre",
    "filters": {},
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("dr1ms/interencheres-auction-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 '{
  "query": "montre",
  "filters": {},
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call dr1ms/interencheres-auction-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Interencheres Scraper — Hammer Prices & Auction Results",
        "description": "Extract French auction data from interencheres.com including realized HAMMER PRICES (results mode), bilingual AI image captions, auctioneer GPS + email, and vehicle history flags. JSON API based — fast, no browser, no login.",
        "version": "0.1",
        "x-build-id": "CyEFt4zRsaGUaEiWf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dr1ms~interencheres-auction-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dr1ms-interencheres-auction-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/dr1ms~interencheres-auction-scraper/runs": {
            "post": {
                "operationId": "runs-sync-dr1ms-interencheres-auction-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/dr1ms~interencheres-auction-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-dr1ms-interencheres-auction-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": [
                            "lots",
                            "results",
                            "sales",
                            "organizations",
                            "tracker"
                        ],
                        "type": "string",
                        "description": "What to extract. `lots` = upcoming/current lots. `results` = SOLD lots with realized hammer prices (premium data). `sales` = auction sales calendar. `organizations` = auction houses directory. `tracker` = incremental scan of lots whose SALE DATE falls in the window since the last run (the window bound is persisted between runs).",
                        "default": "results"
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Full-text search keyword (e.g. `montre`, `Rolex`, `Peugeot 205`). Leave empty to scan the whole index."
                    },
                    "filters": {
                        "title": "API filters",
                        "type": "object",
                        "description": "Typed pass-through filters, validated before any network call. Supported keys: `auctioned` (0/1), `sale` (id), `organization` (id), `area` (department number), `country` (e.g. FR), `category_leaves_ids` (id or list), `estimates_lower`/`estimates_upper` (EUR), `estimates_range` (\"min,max\"), `datetime_range` (\"fromISO,toISO\"), `location` ({\"lat\",\"lon\",\"distance\":\"50km\"}), `live_is_on_air`/`live_has_started`/`live_limited`/`highlight`/`sale_states_canceled` (0/1)."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of items to push to the dataset. 0 = everything available (the run is always bounded by the real total reported by the API).",
                        "default": 100
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Simultaneous API requests. The measured safe pace is 3-5 req/s; raising this above 5 is rarely useful.",
                        "default": 4
                    },
                    "maxRequestRetries": {
                        "title": "Max retries per request",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Retries with exponential backoff on network errors, 429 and 5xx.",
                        "default": 4
                    },
                    "locale": {
                        "title": "Locale",
                        "enum": [
                            "fr-FR",
                            "en-US"
                        ],
                        "type": "string",
                        "description": "API locale. Must be a full tag (`fr-FR` or `en-US`) — the short form `fr` is rejected by the API. Titles and descriptions are returned in BOTH languages regardless.",
                        "default": "fr-FR"
                    },
                    "pastSales": {
                        "title": "Past sales (results history)",
                        "type": "boolean",
                        "description": "In `sales` mode only: query the history of ENDED sales with their results PDF (23k+ sales) instead of the upcoming sales calendar.",
                        "default": false
                    },
                    "trackerSince": {
                        "title": "Tracker: start of window",
                        "type": "string",
                        "description": "In `tracker` mode only: ISO 8601 lower bound of the scan window (e.g. `2026-06-10T00:00:00Z`). If empty, the bound persisted by the previous tracker run is used (default window: last 24h)."
                    },
                    "enrichOrganizations": {
                        "title": "Enrich auction houses (SIREN/NAF)",
                        "type": "boolean",
                        "description": "Premium: fuzzy-match each auction house against the official French companies registry (recherche-entreprises.api.gouv.fr) and add `siren`, `nafCode`, `companyCategory`. No-match is tolerated and never blocks the run.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy is required on the platform: Cloudflare rejects direct connections from Apify datacenter IPs. Defaults to Apify proxy automatically when left empty. Switch to RESIDENTIAL (FR) groups only if datacenter IPs start getting blocked."
                    },
                    "enableTelemetry": {
                        "title": "Operator telemetry (logs only)",
                        "type": "boolean",
                        "description": "Prints an end-of-run cost/efficiency report in the run log. Nothing is ever sent to any external service — disabled by default.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
