# Copart Auction Data Scraper (`automation-lab/copart-auction-data-scraper`) Actor

🚗 Search public Copart salvage auctions and export lot, VIN, damage, title, bid, sale, vehicle, location, and image data for sourcing and monitoring.

- **URL**: https://apify.com/automation-lab/copart-auction-data-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.58 / 1,000 copart lots

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

## Copart Auction Data Scraper

Search Copart's public salvage-vehicle inventory and export structured auction lots, bids, damage, titles, sale dates, locations, and vehicle specifications.

Use a keyword such as `toyota camry` or paste a Copart search URL. The Actor paginates the public inventory, deduplicates lots, and delivers clean JSON, CSV, Excel, XML, or API-ready data.

### What does Copart Auction Data Scraper do?

Copart Auction Data Scraper turns public Copart search results into analysis-ready records.

It extracts:

- 🚗 year, make, model, trim, body style, color, and masked VIN
- 🔧 engine, cylinders, transmission, drivetrain, fuel, and odometer
- 💥 primary damage, secondary damage, condition, title state, and title type
- 🔑 keys-available and run-and-drive indicators
- 💵 current bid, buy-now price, starting bid, retail value, and currency
- 📅 sale name, yard, date, status, and reserve/sold flags
- 📍 city, state, country, postal code, latitude, and longitude
- 🖼️ thumbnail image and canonical Copart lot URL

The Actor uses Copart's anonymous public search data. It does not require a Copart login.

### Who is it for?

#### Salvage dealers and rebuilders

Build repeatable sourcing lists by make, model, damage type, title, yard, or price signals. Compare lots before auction day without copying rows by hand.

#### Vehicle exporters

Monitor inventory near preferred ports or yards. Export sale dates, title state, condition, and vehicle specifications into internal purchasing workflows.

#### Parts buyers and dismantlers

Find donor vehicles by model, engine, drivetrain, damage, and location. Schedule recurring runs for newly available inventory.

#### Automotive data and valuation teams

Collect normalized snapshots for auction research, market analysis, bid monitoring, and internal pricing models.

#### Insurance and academic researchers

Analyze public salvage patterns, title categories, damage labels, geography, and auction activity at scale.

### Why use this Copart scraper?

- **Structured output:** no brittle spreadsheet copy-and-paste.
- **Repeatable searches:** run the same sourcing query daily or hourly.
- **Broad field coverage:** vehicle, condition, bid, sale, and location data in one row.
- **Global cap:** control spend with `maxItems` across every input search.
- **Deduplication:** one row per lot number even when searches overlap.
- **Low-overhead HTTP extraction:** no browser is started for the normal workflow.
- **Reliable proxy sessions:** residential US proxy routing is enabled by default to reduce Copart traffic-protection failures.
- **Apify integrations:** connect datasets to webhooks, Make, Zapier, Google Sheets, or your own API.

### What Copart data can you extract?

| Group | Example fields |
|---|---|
| Identity | `lotNumber`, `vin`, `lotUrl` |
| Vehicle | `year`, `make`, `model`, `trim`, `bodyStyle`, `color` |
| Mechanical | `engine`, `cylinders`, `transmission`, `drive`, `fuel` |
| Mileage | `odometer`, `odometerUnit`, `odometerStatus` |
| Title and condition | `titleState`, `titleType`, `titleGroup`, `condition` |
| Damage | `primaryDamage`, `secondaryDamage` |
| Auction | `currentBid`, `buyNowPrice`, `startingBid`, `saleStatus`, `reserveMet`, `sold` |
| Sale | `saleName`, `saleYard`, `saleDate`, `saleStatusCode` |
| Location | `locationCity`, `locationState`, `locationCountry`, `postalCode`, coordinates |
| Media and audit | `imageUrl`, `searchQuery`, `scrapedAt` |

Copart may omit fields that do not apply to a lot. Optional properties remain absent instead of being filled with misleading placeholder values.

### How to scrape Copart auction lots

1. Open the Actor input page.
2. Enter one or more search keywords, or paste Copart public search URLs.
3. Set **Maximum lots** to the number of unique records needed.
4. Optionally add an advanced Copart filter object.
5. Keep the residential US proxy default for reliability, or disable it only for a low-cost experiment.
6. Click **Start**.
7. Open the default dataset and export the results.

A small first run of 20 lots normally completes well within two minutes.

### Input

A basic keyword search:

```json
{
  "keywords": ["toyota camry"],
  "maxItems": 20
}
````

Search by Copart URL:

```json
{
  "searchUrls": [
    "https://www.copart.com/lotSearchResults?free=true&query=ford%20f150"
  ],
  "maxItems": 50
}
```

Combine searches and enable proxy recovery:

```json
{
  "keywords": ["tesla model 3", "tesla model y"],
  "maxItems": 100,
  "pageSize": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}
```

### Advanced filters and sorting

The `filters` object is forwarded to Copart's public search endpoint. It is intended for advanced users who already know the filter codes generated by Copart's search interface.

The default sort prioritizes upcoming auctions. Override it with `sort` only when you know Copart's sort expression.

```json
{
  "keywords": ["honda civic"],
  "filters": {},
  "sort": ["auction_date_type desc", "auction_date_utc asc"],
  "maxItems": 200
}
```

For the most stable product contract, use plain keyword or query-bearing URL inputs.

### Output example

```json
{
  "lotNumber": "46885636",
  "year": 2020,
  "make": "TOYOTA",
  "model": "CAMRY",
  "trim": "SE",
  "vin": "4T1G11AK1LU******",
  "engine": "2.5L 4",
  "transmission": "AUTOMATIC",
  "drive": "FRONT WHEEL DRIVE",
  "fuel": "GAS",
  "odometer": 0,
  "odometerStatus": "NOT ACTUAL",
  "titleState": "FL",
  "titleType": "CERTIFICATE OF TITLE",
  "primaryDamage": "ALL OVER",
  "currentBid": 3250,
  "currency": "USD",
  "saleYard": "CT - HARTFORD SPRINGFIELD",
  "locationState": "CT",
  "lotUrl": "https://www.copart.com/lot/46885636",
  "searchQuery": "toyota",
  "scrapedAt": "2026-07-17T22:00:00.000Z"
}
```

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

Pricing is pay per event:

- a small one-time Actor start charge
- one **Copart lot** event for each unique record saved
- discounted per-lot rates on higher Apify plans

You never pay a per-record event for duplicate or malformed rows that are not written to the dataset. Set `maxItems` to establish a predictable run ceiling.

The live Apify pricing panel is authoritative and shows the exact price for your plan before a run starts.

### Tips for reliable Copart monitoring

- Start with 20–50 lots to validate your search intent.
- Use specific make/model phrases to reduce irrelevant inventory.
- Store `lotNumber` as the durable identifier in downstream systems.
- Compare `scrapedAt`, `currentBid`, and `saleStatus` across scheduled snapshots.
- Keep `pageSize` at 50 unless requests are timing out.
- Enable residential US proxy recovery only after direct requests fail.
- Use separate scheduled tasks for materially different sourcing strategies.

### Integrations

#### Google Sheets and Excel

Schedule a run, export CSV/XLSX, or use an Apify integration to refresh a buyer shortlist.

#### Make and Zapier

Trigger a workflow when a run finishes. Filter new lot numbers, then send matching vehicles to Slack, email, or a CRM.

#### Webhooks

Attach a run-success webhook and fetch the default dataset from your backend. This works well for auction alerts and internal dashboards.

#### Data warehouses

Load normalized rows into BigQuery, Snowflake, PostgreSQL, or object storage for historical bid and inventory analysis.

### Run from the Apify API with JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/copart-auction-data-scraper').call({
  keywords: ['toyota camry'],
  maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Run from the Apify API with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/copart-auction-data-scraper').call(run_input={
    'keywords': ['ford f150'],
    'maxItems': 50,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### Run with cURL

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~copart-auction-data-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["honda civic"],"maxItems":20}'
```

Fetch dataset items after the run succeeds:

```bash
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true&format=json"
```

### Use with Apify MCP

Connect Claude and other MCP clients to the Actor.

**Claude Code:**

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/copart-auction-data-scraper"
```

**Claude Desktop and Cursor:** add this `mcpServers` JSON to the client's MCP configuration:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/copart-auction-data-scraper"
    }
  }
}
```

**VS Code:** add an HTTP MCP server to your workspace MCP configuration using the same URL and an `apify` server name.

Specific example prompts include:

- “Find 20 Toyota Camry lots and summarize damage and current bids.”
- “Monitor Ford F-150 Copart inventory and return lots in Texas.”
- “Export Tesla Model 3 lots with sale dates and canonical URLs.”

### Scheduling repeat searches

Create an Apify schedule with a saved input. For monitoring, keep the same keywords and compare each dataset with prior `lotNumber` values.

A common workflow is:

1. run every morning before auction activity increases;
2. deduplicate against a database;
3. alert on newly observed lots;
4. snapshot bid and sale status;
5. archive results for later valuation analysis.

### Proxy behavior

Residential US Apify Proxy routing is the reliable default because Copart may apply traffic protection based on network, geography, or request volume.

If logs show repeated request failures:

1. confirm **Proxy configuration** is enabled;
2. choose Apify residential proxies;
3. prefer a US country code;
4. keep concurrency implicit and page size conservative;
5. rerun with a small result cap first.

Proxy use consumes paid bandwidth. Advanced users can disable it for low-volume experiments, but direct IPs may become blocked during pagination.

### Limitations

- Search URLs must include a visible `query` or `q` parameter.
- Opaque saved-search `qId` URLs are not supported.
- VINs may be masked in Copart's public inventory.
- Copart controls field availability, labels, auction timing, and bid freshness.
- Some lots have no buy-now price, secondary damage, coordinates, or odometer reading.
- This Actor extracts public search inventory; it does not place bids or access account-only documents.
- Very large runs may encounter upstream throttling and should use conservative scheduling.

### Is it legal to scrape Copart?

This Actor accesses public auction-search data without bypassing a login. Scraping legality depends on your jurisdiction, use case, contract, and the type of data collected.

You are responsible for:

- complying with applicable laws and Copart's terms;
- avoiding excessive request rates;
- respecting intellectual-property and database rights;
- securing exported data;
- ensuring your downstream decisions do not violate consumer or privacy law.

This documentation is not legal advice.

### Troubleshooting

#### Why did my URL fail validation?

Use a `www.copart.com/lotSearchResults` URL containing `query=...`. Saved searches that only contain an opaque `qId` do not expose enough public input state.

#### Why is the dataset empty?

A valid search may naturally have zero matching inventory. Check the spelling and try the same query on Copart. If logs show a response-shape or request error, enable proxy recovery.

#### Why are some fields missing?

Copart does not expose every property for every lot. Missing optional values are omitted rather than guessed.

#### Why is a VIN incomplete?

Public Copart results can mask VIN characters. The Actor returns the public value exactly as provided.

### FAQ

#### Does this Actor require a Copart account?

No. It targets anonymous public search inventory.

#### Can it scrape a single lot number?

Yes. Put the lot number in `keywords` and set a small `maxItems` value.

#### Can it monitor bids?

Yes. Schedule repeat runs and compare `currentBid`, `saleStatus`, and `scrapedAt`. The Actor captures snapshots; it does not stream live bidding.

#### Does it download full-size photos?

It exports the image URL exposed in public search data. It does not download image binaries into storage.

#### Are duplicate lots charged twice?

Not within one run. Records are deduplicated by lot number before storage and charging.

### Related automotive scrapers

- [AutoTrader Canada Vehicle Listings Scraper](https://apify.com/automation-lab/autotrader-canada-vehicle-listings-scraper)
- [Cars.com Vehicle Listings Scraper](https://apify.com/automation-lab/cars-com-vehicle-listings-scraper)
- [BOVAG Vehicle Listings Scraper](https://apify.com/automation-lab/bovag-vehicle-listings-scraper)
- [Turo Vehicle Listings Price Scraper](https://apify.com/automation-lab/turo-vehicle-listings-price-scraper)
- [NHTSA Vehicle Complaints Scraper](https://apify.com/automation-lab/nhtsa-vehicle-complaints-scraper)

Use this Actor for public Copart salvage-auction inventory. Choose a marketplace listing scraper for retail inventory or the NHTSA Actor for complaint and safety research.

### Start scraping Copart

Enter a keyword, keep the first run small, and export structured auction lots in minutes. For ongoing sourcing, save the input as an Apify task and schedule it around your buying workflow.

# Actor input Schema

## `keywords` (type: `array`):

Vehicle makes, models, VIN fragments, lot numbers, or other Copart free-text searches.

## `searchUrls` (type: `array`):

Copart lotSearchResults URLs containing a query parameter. You can combine these with keywords.

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

Maximum unique auction lots saved across all searches.

## `pageSize` (type: `integer`):

Copart API page size. Lower this if requests time out.

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

Optional filter object accepted by Copart's public search endpoint.

## `sort` (type: `array`):

Copart sort expressions. Defaults to upcoming auctions first.

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

Apify Proxy configuration. Residential US proxies are the reliable default; disable proxy use only for low-cost experiments.

## Actor input object example

```json
{
  "keywords": [
    "toyota camry"
  ],
  "maxItems": 20,
  "pageSize": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "keywords": [
        "toyota camry"
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/copart-auction-data-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 = {
    "keywords": ["toyota camry"],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/copart-auction-data-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 '{
  "keywords": [
    "toyota camry"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call automation-lab/copart-auction-data-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Copart Auction Data Scraper",
        "description": "🚗 Search public Copart salvage auctions and export lot, VIN, damage, title, bid, sale, vehicle, location, and image data for sourcing and monitoring.",
        "version": "0.1",
        "x-build-id": "unBlfRdphDnoppdhv"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~copart-auction-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-copart-auction-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/automation-lab~copart-auction-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-copart-auction-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/automation-lab~copart-auction-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-copart-auction-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keywords": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "Vehicle makes, models, VIN fragments, lot numbers, or other Copart free-text searches.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchUrls": {
                        "title": "Copart search URLs",
                        "type": "array",
                        "description": "Copart lotSearchResults URLs containing a query parameter. You can combine these with keywords.",
                        "items": {
                            "type": "string",
                            "pattern": "^https?://(www\\.)?copart\\.com/"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum lots",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum unique auction lots saved across all searches.",
                        "default": 20
                    },
                    "pageSize": {
                        "title": "Lots per request",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Copart API page size. Lower this if requests time out.",
                        "default": 50
                    },
                    "filters": {
                        "title": "Copart filters",
                        "type": "object",
                        "description": "Optional filter object accepted by Copart's public search endpoint."
                    },
                    "sort": {
                        "title": "Sort expressions",
                        "type": "array",
                        "description": "Copart sort expressions. Defaults to upcoming auctions first.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration. Residential US proxies are the reliable default; disable proxy use only for low-cost experiments.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
