# Contracts Finder UK Procurement Scraper (`automation-lab/contracts-finder-uk-procurement-scraper`) Actor

Find UK public procurement tenders and awards from Contracts Finder. Export buyers, values, CPV codes, deadlines, suppliers, and notice links.

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

## Pricing

Pay per event

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.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

## Contracts Finder UK Procurement Scraper

Scrape UK public procurement notices from the official Contracts Finder OCDS API.

Use this actor to collect tenders, awards, planning notices, buyers, suppliers, CPV codes, values, deadlines, document links, and source notice URLs without running a browser or maintaining your own Contracts Finder integration.

### What does Contracts Finder UK Procurement Scraper do?

Contracts Finder UK Procurement Scraper queries the UK government Contracts Finder public OCDS endpoint and converts procurement releases into clean dataset rows.

It can pull recent notices, search by keyword, filter by notice type, filter by tender status, and keep CPV code prefixes that matter to your market.

The actor follows cursor pagination automatically and saves one flattened record per procurement notice.

### Who is it for?

- 🧑‍💼 Bid managers monitoring public-sector opportunities.
- 🏢 B2G sales teams finding buyers with active tenders.
- 📊 Procurement analysts building public-spend dashboards.
- 🕵️ Market intelligence teams tracking competitors and awards.
- 🏛️ Civic-tech teams using official open contracting data.
- 🧾 Compliance teams auditing awards, values, and suppliers.

### Why use this actor?

- ✅ Uses the official public OCDS JSON endpoint.
- ✅ No login, account, token, or browser automation required.
- ✅ Low-cost HTTP-only execution.
- ✅ Flat rows that are easy to export to CSV, Excel, BigQuery, or BI tools.
- ✅ Useful fields for tender discovery and award analysis.
- ✅ Works with Apify schedules, webhooks, API clients, and MCP.

### What data can you extract?

| Field | Description |
| --- | --- |
| `ocid` | Open Contracting ID for the release. |
| `releaseId` | Contracts Finder release identifier. |
| `noticeType` | OCDS release tag such as tender or award. |
| `title` | Tender or award title. |
| `description` | Public description from the notice. |
| `tenderStatus` | Tender status such as active or complete. |
| `procurementMethod` | Procurement method/details text. |
| `procurementCategory` | Main procurement category. |
| `buyerName` | Buying authority name. |
| `buyerId` | Buyer identifier when present. |
| `buyerContactName` | Buyer contact person. |
| `buyerEmail` | Buyer contact email. |
| `buyerPhone` | Buyer contact phone. |
| `supplierNames` | Awarded supplier names when present. |
| `valueAmount` | Estimated or awarded value. |
| `valueCurrency` | Value currency, usually GBP. |
| `cpvCode` | Common Procurement Vocabulary code. |
| `cpvDescription` | CPV description. |
| `publishedDate` | Release publication date. |
| `tenderDeadline` | Tender deadline. |
| `contractStartDate` | Contract start date. |
| `contractEndDate` | Contract end date. |
| `awardDate` | Award date when available. |
| `awardStatus` | Award status when available. |
| `smeSuitable` | SME suitability flag. |
| `vcseSuitable` | VCSE suitability flag. |
| `deliveryLocations` | Delivery locations from tender items. |
| `documentUrls` | Notice and document URLs. |
| `noticeUrl` | Direct Contracts Finder notice URL. |
| `sourceApiUrl` | OCDS API URL used for the row. |
| `scrapedAt` | Timestamp when the row was saved. |

### How much does it cost to scrape UK Contracts Finder notices?

This actor uses pay-per-event pricing.

You pay a small start fee and then a per-notice event for each saved procurement notice.

The BRONZE tier is about $0.10 per 1,000 notices before volume discounts.

Because the actor is HTTP-only and uses the public API, runs are designed to stay inexpensive for recurring monitoring.

### Quick start

1. Open the actor on Apify.
2. Add one or more keywords such as `construction`, `software`, or `facilities management`.
3. Set `publishedFrom` to the beginning of the monitoring window.
4. Choose notice types such as `tender` and `award`.
5. Set `maxItems` to a low number for your first run.
6. Run the actor.
7. Export the dataset as CSV, JSON, Excel, or via API.

### Input options

#### `keywords`

Optional list of terms to send to Contracts Finder.

Leave it empty to collect the newest notices in the selected date range.

#### `publishedFrom`

Start date for publication filtering.

Use `YYYY-MM-DD` format.

If omitted, the actor defaults to the last 30 days.

#### `publishedTo`

Optional end date for publication filtering.

Use this for historical snapshots or repeatable backfills.

#### `noticeTypes`

Filter rows by OCDS release tags.

Common values include `planning`, `tender`, `award`, `contract`, and `implementation`.

#### `tenderStatuses`

Filter by tender status after extraction.

Common values include `active`, `complete`, `cancelled`, and `planned`.

#### `cpvCodes`

Keep only notices whose CPV code starts with one of your prefixes.

Example: `72000000` for IT services or `45000000` for construction work.

#### `maxItems`

Maximum number of notices to save.

Start with 25 or 50 while testing a new workflow.

#### `includeRawOcds`

Attach the full source OCDS release JSON to each row.

Use this for audits or custom transformations.

Leave it off for smaller datasets.

### Example input

```json
{
  "keywords": ["construction", "software"],
  "publishedFrom": "2026-06-01",
  "noticeTypes": ["tender", "award"],
  "maxItems": 50,
  "includeRawOcds": false
}
````

### Example output

```json
{
  "ocid": "ocds-b5fd17-example",
  "releaseId": "example-release-id",
  "noticeType": "award",
  "title": "Public sector software support contract",
  "buyerName": "Example Council",
  "supplierNames": ["Example Supplier Ltd"],
  "valueAmount": 25000,
  "valueCurrency": "GBP",
  "cpvCode": "72000000",
  "cpvDescription": "IT services",
  "publishedDate": "2026-06-15T09:00:00+01:00",
  "noticeUrl": "https://www.contractsfinder.service.gov.uk/Notice/example",
  "sourceApiUrl": "https://www.contractsfinder.service.gov.uk/Published/Notices/OCDS/Search?...",
  "scrapedAt": "2026-06-15T10:00:00.000Z"
}
```

### Tips for best results

- Use several focused keywords instead of one broad keyword.
- Combine keyword searches with CPV prefixes for better sector targeting.
- Schedule daily runs with `publishedFrom` set to a recent date for monitoring.
- Export to CSV for quick review by bid teams.
- Enable `includeRawOcds` only when you need source-level audit detail.

### Common workflows

#### Tender monitoring

Run the actor daily for keywords that match your services.

Send new dataset rows to Slack, email, Airtable, or your CRM.

#### Award intelligence

Filter for `award` notices and track supplier names, buyer names, and awarded values.

Use this to identify incumbents and likely renewal windows.

#### CPV market sizing

Run broad CPV prefix searches over a date range.

Aggregate by buyer, value, category, and supplier.

#### Buyer prospecting

Search for recurring buyers in your sector.

Export buyer contact fields and notice URLs for qualification.

### Integrations

Contracts Finder UK Procurement Scraper works with Apify integrations.

- 🔔 Webhooks for new tender alerts.
- 📥 Dataset API for ETL pipelines.
- 📊 Google Sheets or BI exports for dashboards.
- 🧱 Make and Zapier for no-code automations.
- 🗄️ BigQuery or data warehouse sync for analytics.

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/contracts-finder-uk-procurement-scraper').call({
  keywords: ['construction'],
  publishedFrom: '2026-06-01',
  maxItems: 50
});
console.log(run.defaultDatasetId);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('APIFY_TOKEN')
run = client.actor('automation-lab/contracts-finder-uk-procurement-scraper').call(run_input={
    'keywords': ['software'],
    'publishedFrom': '2026-06-01',
    'maxItems': 50,
})
print(run['defaultDatasetId'])
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~contracts-finder-uk-procurement-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"keywords":["construction"],"publishedFrom":"2026-06-01","maxItems":50}'
```

### MCP usage

Use the Apify MCP server to call this actor from Claude Desktop, Claude Code, Cursor, VS Code, or any MCP client that supports HTTP transport.

MCP URL:

```text
https://mcp.apify.com/?tools=automation-lab/contracts-finder-uk-procurement-scraper
```

Claude Code setup:

```bash
claude mcp add --transport http apify-contracts-finder https://mcp.apify.com/?tools=automation-lab/contracts-finder-uk-procurement-scraper
```

Claude Desktop setup:

1. Open Claude Desktop settings.
2. Go to **Developer** → **Edit Config**.
3. Add the JSON below and restart Claude Desktop.

```json
{
  "mcpServers": {
    "apify-contracts-finder": {
      "transport": "http",
      "url": "https://mcp.apify.com/?tools=automation-lab/contracts-finder-uk-procurement-scraper"
    }
  }
}
```

Cursor setup:

1. Open **Cursor Settings** → **MCP**.
2. Choose **Add new global MCP server**.
3. Use the name `apify-contracts-finder`, transport `http`, and the MCP URL above.
4. Save, then enable the server in your Cursor chat/tools panel.

VS Code setup:

1. Install an MCP-compatible extension such as Claude Code or another MCP client extension.
2. Add a new MCP server with transport `http`.
3. Use the name `apify-contracts-finder` and the MCP URL above.
4. Reload VS Code and confirm the Apify tool appears in the agent/tool list.

Example prompts:

- "Find recent UK public-sector tenders about facilities management."
- "Scrape Contracts Finder awards for software since June 1 and summarize the largest values."
- "Collect active construction tenders and list buyer contacts."

### Scheduling

Create an Apify schedule to run the actor every morning.

For daily monitoring, use a recent `publishedFrom` date and a manageable `maxItems` value.

For historical analysis, run larger date windows in batches.

### Data quality notes

The actor returns data as published by Contracts Finder.

Some notices may not include values, suppliers, buyer contact details, or CPV classifications.

Award notices usually contain supplier and award fields.

Tender notices usually contain deadlines and opportunity details.

### Legality

Contracts Finder publishes public procurement information for transparency and opportunity discovery.

Use the data responsibly and comply with applicable laws, Apify terms, and the source website terms.

Do not use scraped contact details for spam.

### FAQ

### Troubleshooting

#### Why did I get fewer notices than `maxItems`?

Your filters may be narrow, or the selected date range may contain fewer matching notices.

Try removing CPV filters or broadening the publication dates.

#### Why are some value fields empty?

Not every notice discloses an estimated or awarded value.

The actor preserves missing source values as `null`.

#### Why are supplier fields empty?

Supplier names are usually available on award notices, not on active tender notices.

Include `award` in `noticeTypes` if you need supplier intelligence.

### Related scrapers

- https://apify.com/automation-lab/ted-europa-tenders-scraper
- https://apify.com/automation-lab/contracts-finder-uk-procurement-scraper

### Changelog

#### 0.1

Initial release with keyword/date search, cursor pagination, notice-type filters, CPV filtering, flattened OCDS output, and pay-per-notice charging.

### Support

If you need additional fields, contact enrichment, attachment downloading, or workflow help, open an issue on Apify.

### Field reference

The actor keeps stable field names for downstream automation.

Fields may be `null` when the public source does not provide them.

Arrays such as `supplierNames`, `deliveryLocations`, and `documentUrls` are always arrays.

### Performance

The actor is HTTP-only.

It does not open a browser.

It does not use residential proxies by default.

That keeps small scheduled monitoring runs fast and inexpensive.

### Reliability

The actor follows the official OCDS pagination cursor.

It de-duplicates releases by release ID or OCID during a run.

It logs skipped HTTP errors and continues where possible.

### Source transparency

Every row includes `sourceApiUrl`.

Most rows include `noticeUrl` when the source documents expose a direct Contracts Finder notice link.

Use these URLs to verify important tender or award details.

# Actor input Schema

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

Optional free-text terms. The public OCDS endpoint searches tender titles and descriptions. Leave empty to pull the newest notices in the date range.

## `publishedFrom` (type: `string`):

Start date for notice publication in YYYY-MM-DD format. Defaults to the last 30 days when omitted.

## `publishedTo` (type: `string`):

Optional end date for notice publication in YYYY-MM-DD format.

## `noticeTypes` (type: `array`):

Keep only selected OCDS release tags. Leave empty to include all returned notice types.

## `tenderStatuses` (type: `array`):

Keep only selected tender status values. Leave empty to include active, complete, cancelled, and other statuses.

## `cpvCodes` (type: `array`):

Optional Common Procurement Vocabulary code prefixes to keep after extraction, e.g. 72000000 for IT services or 45000000 for construction.

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

Maximum number of procurement notices to save.

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

How many OCDS releases to request per page. Contracts Finder currently supports up to 100.

## `includeRawOcds` (type: `boolean`):

Attach the full source OCDS release to each dataset item for audits or custom transformations. This increases dataset size.

## Actor input object example

```json
{
  "keywords": [
    "construction",
    "software"
  ],
  "publishedFrom": "2026-06-01",
  "noticeTypes": [
    "tender",
    "award"
  ],
  "maxItems": 20,
  "pageSize": 100,
  "includeRawOcds": false
}
```

# 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": [
        "construction",
        "software"
    ],
    "publishedFrom": "2026-06-01",
    "noticeTypes": [
        "tender",
        "award"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/contracts-finder-uk-procurement-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": [
        "construction",
        "software",
    ],
    "publishedFrom": "2026-06-01",
    "noticeTypes": [
        "tender",
        "award",
    ],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/contracts-finder-uk-procurement-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": [
    "construction",
    "software"
  ],
  "publishedFrom": "2026-06-01",
  "noticeTypes": [
    "tender",
    "award"
  ],
  "maxItems": 20
}' |
apify call automation-lab/contracts-finder-uk-procurement-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Contracts Finder UK Procurement Scraper",
        "description": "Find UK public procurement tenders and awards from Contracts Finder. Export buyers, values, CPV codes, deadlines, suppliers, and notice links.",
        "version": "0.1",
        "x-build-id": "q4oJVJPtsK8ogH4uF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~contracts-finder-uk-procurement-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-contracts-finder-uk-procurement-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~contracts-finder-uk-procurement-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-contracts-finder-uk-procurement-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~contracts-finder-uk-procurement-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-contracts-finder-uk-procurement-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": "Keywords",
                        "type": "array",
                        "description": "Optional free-text terms. The public OCDS endpoint searches tender titles and descriptions. Leave empty to pull the newest notices in the date range.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "publishedFrom": {
                        "title": "Published from",
                        "type": "string",
                        "description": "Start date for notice publication in YYYY-MM-DD format. Defaults to the last 30 days when omitted."
                    },
                    "publishedTo": {
                        "title": "Published to",
                        "type": "string",
                        "description": "Optional end date for notice publication in YYYY-MM-DD format."
                    },
                    "noticeTypes": {
                        "title": "Notice types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keep only selected OCDS release tags. Leave empty to include all returned notice types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "planning",
                                "tender",
                                "award",
                                "contract",
                                "implementation"
                            ],
                            "enumTitles": [
                                "Planning",
                                "Tender",
                                "Award",
                                "Contract",
                                "Implementation"
                            ]
                        }
                    },
                    "tenderStatuses": {
                        "title": "Tender statuses",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keep only selected tender status values. Leave empty to include active, complete, cancelled, and other statuses.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "active",
                                "complete",
                                "cancelled",
                                "planned",
                                "unsuccessful"
                            ],
                            "enumTitles": [
                                "Active",
                                "Complete",
                                "Cancelled",
                                "Planned",
                                "Unsuccessful"
                            ]
                        }
                    },
                    "cpvCodes": {
                        "title": "CPV code prefixes",
                        "type": "array",
                        "description": "Optional Common Procurement Vocabulary code prefixes to keep after extraction, e.g. 72000000 for IT services or 45000000 for construction.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum notices",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of procurement notices to save.",
                        "default": 50
                    },
                    "pageSize": {
                        "title": "API page size",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "How many OCDS releases to request per page. Contracts Finder currently supports up to 100.",
                        "default": 100
                    },
                    "includeRawOcds": {
                        "title": "Include raw OCDS JSON",
                        "type": "boolean",
                        "description": "Attach the full source OCDS release to each dataset item for audits or custom transformations. This increases dataset size.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
