# UK Parliament Scraper (`crawlerbros/uk-parliament-scraper`) Actor

Scrape UK Parliament open data - search MPs and Lords, get member profiles and careers, browse public bills, and pull House of Commons voting divisions. Powered by the official parliament.uk APIs. No login or API key.

- **URL**: https://apify.com/crawlerbros/uk-parliament-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## UK Parliament Scraper

Pull structured data from the **UK Parliament** straight into your spreadsheets, dashboards, or database. Search sitting and former **MPs and members of the House of Lords**, download full **member profiles and career histories**, browse **public bills** as they move through Parliament, and capture **House of Commons voting divisions** — all from the official `parliament.uk` open data services.

No login, no API key, no cookies, no proxy. Just choose a mode, set your filters, and run.

### What this actor does

The UK Parliament Scraper turns the official Parliament APIs into clean, ready-to-use JSON records. Use it to:

- **Track MPs and Lords** — find members by name, House, party, gender, or current-membership status.
- **Build member profiles** — pull a member's synopsis, contact details (email, phone, office address), registered financial interests, constituencies, government and opposition posts, committee memberships, and party affiliations.
- **Monitor legislation** — search bills by title and House (current or originating), with sponsors, full stage history, and publications.
- **Analyse votes** — download Commons divisions with aye/no counts and tellers, and optionally the full list of who voted Aye and No.

### Modes

| Mode | What you get |
|------|--------------|
| **Search members (MPs & Lords)** | A list of members matching your name / House / party / gender filters. |
| **Member profiles & careers (by ID)** | Full profile plus synopsis, contact details, registered interests, and career: constituencies, government & opposition posts, committees, party affiliations. |
| **Bills (public legislation)** | Bills matching a title search, with current stage, full stage history, publications, and sponsors. |
| **House of Commons divisions (votes)** | Recorded votes with aye/no counts, tellers, and (optionally) the full Aye/No member breakdown. |

### Output fields

Empty fields are omitted, so you never get `null`s. Every record carries `recordType`, `sourceUrl`, and `scrapedAt`.

- **Member (`searchMembers` / `memberDetails`):** `memberId`, `name`, `listAs`, `fullTitle`, `gender`, `party`, `partyAbbreviation`, `house`, `membershipFrom`, `membershipFromId`, `membershipStartDate`, `membershipEndDate`, `isActive`, `membershipStatus`, `membershipStatusStartDate`, `thumbnailUrl`. In `memberDetails` only: `synopsis`, `email`, `phone`, `address`, `postcode`, `registeredInterests` (array of `{category, interests[]}`), plus the career lists `representations`, `governmentPosts`, `oppositionPosts`, `committeeMemberships`, and `partyAffiliations` (each an array of `{name, startDate, endDate, additionalInfo}`).
- **Bill (`bills`):** `billId`, `shortTitle`, `longTitle`, `summary`, `currentHouse`, `originatingHouse`, `lastUpdate`, `isAct`, `isDefeated`, `currentStage`, `currentStageAbbreviation`, `currentStageHouse`, `sponsors[]`, `stages[]` (array of `{stage, abbreviation, house, date}`), and `publications[]` (array of `{title, type, date, url}`).
- **Division (`divisions`):** `divisionId`, `title`, `date`, `publicationUpdated`, `number`, `ayeCount`, `noCount`, `isDeferred`, `ayeTellers[]`, `noTellers[]`. With `includeVoters` enabled, also `ayes[]` and `noes[]` (each an array of `{memberId, name, party, memberFrom}`).

### Output samples

Each record is a flat JSON object.

**Member (searchMembers / memberDetails)**
```json
{
  "memberId": 4514,
  "name": "Sir Keir Starmer",
  "listAs": "Starmer, Sir Keir",
  "fullTitle": "Rt Hon Sir Keir Starmer MP",
  "gender": "M",
  "party": "Labour",
  "partyAbbreviation": "Lab",
  "house": "Commons",
  "membershipFrom": "Holborn and St Pancras",
  "membershipFromId": 4105,
  "membershipStartDate": "2015-05-07T00:00:00",
  "isActive": true,
  "membershipStatus": "Current Member",
  "membershipStatusStartDate": "2024-07-04T00:00:00",
  "thumbnailUrl": "https://members-api.parliament.uk/api/Members/4514/Thumbnail",
  "synopsis": "The Rt Hon Sir Keir Starmer is the Labour MP for Holborn and St Pancras, and has been an MP continually since 7 May 2015. …",
  "email": "keir.starmer.mp@parliament.uk",
  "address": "House of Commons, London",
  "postcode": "SW1A 0AA",
  "representations": [{ "name": "Holborn and St Pancras", "startDate": "2024-07-04T00:00:00", "additionalInfo": "Elected 1 time" }],
  "governmentPosts": [{ "name": "Prime Minister", "startDate": "2024-07-05T00:00:00" }],
  "recordType": "member",
  "sourceUrl": "https://members.parliament.uk/member/4514/career",
  "scrapedAt": "2026-07-02T13:31:10+00:00"
}
````

Career lists (`representations`, `governmentPosts`, `oppositionPosts`, `committeeMemberships`, `partyAffiliations`) are only populated in `memberDetails` mode.

**Bill**

```json
{
  "billId": 2772,
  "shortTitle": "Climate and Ecology Bill",
  "longTitle": "A Bill to require the Prime Minister to achieve climate and ecology objectives; …",
  "currentHouse": "Commons",
  "originatingHouse": "Commons",
  "lastUpdate": "2021-05-04T14:20:25",
  "isAct": false,
  "isDefeated": false,
  "currentStage": "2nd reading",
  "currentStageAbbreviation": "2R",
  "currentStageHouse": "Commons",
  "sponsors": ["Caroline Lucas"],
  "stages": [
    { "stage": "1st reading", "abbreviation": "1R", "house": "Commons", "date": "2020-06-02T00:00:00" },
    { "stage": "2nd reading", "abbreviation": "2R", "house": "Commons", "date": "2021-03-12T00:00:00" }
  ],
  "recordType": "bill",
  "sourceUrl": "https://bills.parliament.uk/bills/2772",
  "scrapedAt": "2026-07-02T13:32:02+00:00"
}
```

**Division (Commons vote)**

```json
{
  "divisionId": 1488,
  "title": "Social Housing (Regulation) Bill [Lords] Report Stage: Amendment 40",
  "date": "2023-03-01T16:57:00",
  "publicationUpdated": "2023-03-02T09:36:07",
  "number": 182,
  "ayeCount": 180,
  "noCount": 276,
  "isDeferred": false,
  "ayeTellers": ["Gerald Jones", "Christian Wakeford"],
  "noTellers": ["Scott Mann", "Robert Largan"],
  "recordType": "division",
  "sourceUrl": "https://votes.parliament.uk/Votes/Commons/Division/1488",
  "scrapedAt": "2026-07-02T13:32:35+00:00"
}
```

### Input

| Field | Type | Applies to | Description |
|-------|------|-----------|-------------|
| `mode` | select | all | `searchMembers`, `memberDetails`, `bills`, or `divisions`. |
| `searchQuery` | string | searchMembers / bills / divisions | Name (members), or title text (bills, divisions). Leave blank on bills/divisions to browse the latest. |
| `house` | select | searchMembers | `Commons`, `Lords`, or any. |
| `party` | select | searchMembers | Party name (Labour, Conservative, Reform UK, SNP, …). |
| `gender` | select | searchMembers | Male, Female, or any. |
| `currentOnly` | boolean | searchMembers | Only current members (default `true`). |
| `memberIds` | array | memberDetails | Member IDs or `members.parliament.uk` profile URLs. |
| `billHouse` | select | bills | Restrict to bills currently before the Commons or Lords. |
| `billOriginatingHouse` | select | bills | Restrict to bills first introduced in the Commons or Lords. |
| `includeVoters` | boolean | divisions | Also fetch the full Aye/No member breakdown per division (one extra request each). |
| `maxItems` | integer | all | Cap on records returned (1–1000, default 50). |

#### Example inputs

**Search Labour MPs in the Commons**

```json
{ "mode": "searchMembers", "house": "Commons", "party": "Labour", "maxItems": 50 }
```

**Full profiles for Keir Starmer and Rishi Sunak**

```json
{ "mode": "memberDetails", "memberIds": ["4514", "4483"] }
```

**Bills about climate**

```json
{ "mode": "bills", "searchQuery": "climate", "maxItems": 25 }
```

**Recent Commons divisions on housing**

```json
{ "mode": "divisions", "searchQuery": "housing", "maxItems": 25 }
```

### Use cases

- **Political research & journalism** — track MPs and Lords by party, House, or constituency and monitor how bills progress.
- **Civic tech & transparency** — build voting-record dashboards from Commons divisions with aye/no counts and tellers.
- **Public affairs & lobbying** — watch legislation on a topic and identify bill sponsors and current stages.
- **Academic & data science** — bulk-export member career histories (posts, committees, affiliations) for network analysis.
- **CRM enrichment** — resolve member IDs or profile URLs into full, structured member records.

### FAQ

**Do I need an account or API key?**
No. All data comes from the free, public UK Parliament open data services.

**Where does the data come from?**
The official `members-api.parliament.uk`, `bills-api.parliament.uk`, and `commonsvotes-api.parliament.uk` services published by the UK Parliament.

**How do I find a member's ID?**
Open the member on `members.parliament.uk` — the number in the URL is the ID — or run `searchMembers` first and reuse the `memberId` from the results. You can also paste the full profile URL into `memberIds`.

**Does it cover the House of Lords?**
Yes. Set `house` to `Lords` in `searchMembers`, or fetch any peer by ID in `memberDetails`. Divisions cover the House of Commons.

**How many records can I get?**
Set `maxItems` up to 1000 per run. Large result sets are paginated automatically.

**Is historical data available?**
Yes. Turn off `currentOnly` to include former members, and bills/divisions include past sessions.

### Data source

This actor uses the UK Parliament's official open data APIs, which are free and publicly accessible without authentication.

# Actor input Schema

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

What to fetch.

## `searchQuery` (type: `string`):

Text query. In `searchMembers` it matches member names; in `bills` it matches bill titles; in `divisions` it matches division titles. Leave blank in `bills`/`divisions` to browse the most recent items.

## `house` (type: `string`):

Restrict member search to a single House.

## `party` (type: `string`):

Restrict member search to a single party.

## `gender` (type: `string`):

Restrict member search to a single gender.

## `currentOnly` (type: `boolean`):

Only include members who currently sit in Parliament. Turn off to include former members.

## `memberIds` (type: `array`):

Parliament member IDs to fetch full profiles + careers for (e.g. `4514` for Keir Starmer). Accepts numeric IDs or members.parliament.uk profile URLs.

## `billHouse` (type: `string`):

Restrict bills to those currently before a single House.

## `billOriginatingHouse` (type: `string`):

Restrict bills to those first introduced in a single House.

## `includeVoters` (type: `boolean`):

For divisions, also fetch the full list of MPs who voted Aye and No (adds one request per division).

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

Hard cap on the number of records emitted.

## Actor input object example

```json
{
  "mode": "searchMembers",
  "searchQuery": "Starmer",
  "house": "",
  "party": "",
  "gender": "",
  "currentOnly": true,
  "memberIds": [
    "4514",
    "4483"
  ],
  "billHouse": "",
  "billOriginatingHouse": "",
  "includeVoters": false,
  "maxItems": 20
}
```

# Actor output Schema

## `records` (type: `string`):

Dataset containing all scraped UK Parliament records.

# 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 = {
    "mode": "searchMembers",
    "searchQuery": "Starmer",
    "currentOnly": true,
    "memberIds": [
        "4514",
        "4483"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/uk-parliament-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 = {
    "mode": "searchMembers",
    "searchQuery": "Starmer",
    "currentOnly": True,
    "memberIds": [
        "4514",
        "4483",
    ],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/uk-parliament-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 '{
  "mode": "searchMembers",
  "searchQuery": "Starmer",
  "currentOnly": true,
  "memberIds": [
    "4514",
    "4483"
  ],
  "maxItems": 20
}' |
apify call crawlerbros/uk-parliament-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "UK Parliament Scraper",
        "description": "Scrape UK Parliament open data - search MPs and Lords, get member profiles and careers, browse public bills, and pull House of Commons voting divisions. Powered by the official parliament.uk APIs. No login or API key.",
        "version": "1.0",
        "x-build-id": "w5aRjVmYrjfTribGg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~uk-parliament-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-uk-parliament-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/crawlerbros~uk-parliament-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-uk-parliament-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/crawlerbros~uk-parliament-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-uk-parliament-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": [
                            "searchMembers",
                            "memberDetails",
                            "bills",
                            "divisions"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "searchMembers"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Text query. In `searchMembers` it matches member names; in `bills` it matches bill titles; in `divisions` it matches division titles. Leave blank in `bills`/`divisions` to browse the most recent items.",
                        "default": "Starmer"
                    },
                    "house": {
                        "title": "House (searchMembers)",
                        "enum": [
                            "",
                            "Commons",
                            "Lords"
                        ],
                        "type": "string",
                        "description": "Restrict member search to a single House.",
                        "default": ""
                    },
                    "party": {
                        "title": "Party (searchMembers)",
                        "enum": [
                            "",
                            "Labour",
                            "Conservative",
                            "Liberal Democrat",
                            "Scottish National Party",
                            "Reform UK",
                            "Green Party",
                            "Democratic Unionist Party",
                            "Sinn Féin",
                            "Plaid Cymru",
                            "Social Democratic & Labour Party",
                            "Ulster Unionist Party",
                            "Alliance",
                            "Traditional Unionist Voice",
                            "Independent",
                            "Crossbench",
                            "Non-affiliated",
                            "Bishops",
                            "Conservative Independent",
                            "Your Party",
                            "Restore Britain"
                        ],
                        "type": "string",
                        "description": "Restrict member search to a single party.",
                        "default": ""
                    },
                    "gender": {
                        "title": "Gender (searchMembers)",
                        "enum": [
                            "",
                            "M",
                            "F"
                        ],
                        "type": "string",
                        "description": "Restrict member search to a single gender.",
                        "default": ""
                    },
                    "currentOnly": {
                        "title": "Current members only (searchMembers)",
                        "type": "boolean",
                        "description": "Only include members who currently sit in Parliament. Turn off to include former members.",
                        "default": true
                    },
                    "memberIds": {
                        "title": "Member IDs (memberDetails)",
                        "type": "array",
                        "description": "Parliament member IDs to fetch full profiles + careers for (e.g. `4514` for Keir Starmer). Accepts numeric IDs or members.parliament.uk profile URLs.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "billHouse": {
                        "title": "Current House (bills)",
                        "enum": [
                            "",
                            "Commons",
                            "Lords"
                        ],
                        "type": "string",
                        "description": "Restrict bills to those currently before a single House.",
                        "default": ""
                    },
                    "billOriginatingHouse": {
                        "title": "Originating House (bills)",
                        "enum": [
                            "",
                            "Commons",
                            "Lords"
                        ],
                        "type": "string",
                        "description": "Restrict bills to those first introduced in a single House.",
                        "default": ""
                    },
                    "includeVoters": {
                        "title": "Include individual votes (divisions)",
                        "type": "boolean",
                        "description": "For divisions, also fetch the full list of MPs who voted Aye and No (adds one request per division).",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on the number of records emitted.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
