# Malaysian Bar Legal Directory Scraper (`jungle_synthesizer/malaysian-bar-legal-directory-scraper`) Actor

Scrape the official Malaysian Bar Council Legal Directory for lawyers, law firms, and pupils. Extract names, firm affiliations, addresses, contact details, admission dates, and practicing status across all 15 Malaysian states and federal territories.

- **URL**: https://apify.com/jungle\_synthesizer/malaysian-bar-legal-directory-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation, Business, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN 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.

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

## Malaysian Bar Legal Directory Scraper

Scrape the official [Malaysian Bar Council Legal Directory](https://legaldirectory.malaysianbar.org.my) for every registered lawyer, law firm, and pupil in Malaysia. Returns names, firm affiliations, addresses, phone numbers, emails, practicing status, admission dates, and qualifications — the same fields you'd copy by hand from the directory, only you get them in clean JSON instead of scrolling through 979 pages.

---

### Malaysian Bar Scraper Features

- Extracts ~25,000 lawyers, ~4,000 law firms, and ~1,000 pupils across all 15 Malaysian states and federal territories
- Returns 18+ fields per record — firm, address, phone, email, state, postcode, admission date, qualification, practicing status
- Filters by record type (lawyers, firms, pupils), state, or surname alphabet
- Firm records include affiliated lawyer and pupil names so you can rebuild the roster
- Pure JSON API scraping — no browser, no proxies, no captcha solvers needed
- Handles pagination, session cookies, and rate limiting so you can point it at a state and walk away

---

### Who Uses Malaysian Bar Directory Data?

- **Legal tech vendors** — Build outreach lists for CRM tools, practice management software, and legal research platforms targeting Southeast Asia
- **Cross-border law firms** — Identify local counsel, correspondents, and referral partners in specific Malaysian states
- **Recruiters and headhunters** — Source lateral candidates by firm, admission date, or practice area
- **Compliance and KYC** — Verify bar admission status, firm affiliation, and contact details on Malaysian counterparties
- **Market researchers** — Map firm distribution across states, track pupil intake, and measure legal-sector growth in Malaysia

---

### How the Malaysian Bar Scraper Works

1. **Pick what to scrape** — Choose record types (lawyers, firms, pupils) and optionally narrow by state or alphabet letter
2. **Paginate the directory** — The scraper hits the Bar Council's internal JSON API and walks every page for each filter combination
3. **Return clean records** — Each record is flattened into a consistent output schema with a `recordType` tag, so lawyers, firms, and pupils can live in the same dataset without fighting

---

### Input

```json
{
  "recordTypes": ["lawyer", "firm", "pupil"],
  "states": ["WPKL", "SG"],
  "maxItems": 500
}
````

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| recordTypes | array | `["lawyer","firm","pupil"]` | Which directory segments to crawl. Any combination of `lawyer`, `firm`, `pupil`. |
| states | array | `[]` | Restrict to specific Malaysian state codes (e.g. `WPKL`, `SG`, `JH`). Leave empty to crawl all 15 states. |
| alphabets | array | `[]` | Restrict to surnames starting with specific letters. Only applied when `states` is empty. Leave empty for A–Z. |
| maxItems | integer | 100 | Maximum total records across all record types. Set to 0 for unlimited. |

#### Scraping all lawyers in Kuala Lumpur

```json
{
  "recordTypes": ["lawyer"],
  "states": ["WPKL"],
  "maxItems": 0
}
```

#### Scraping only law firms, statewide

```json
{
  "recordTypes": ["firm"],
  "maxItems": 1000
}
```

***

### Malaysian Bar Scraper Output Fields

Every record in the dataset uses the same schema. Type-specific fields (like `admissionDate` for lawyers or `petitionStatus` for pupils) are populated where they apply and `null` elsewhere.

```json
{
  "recordType": "lawyer",
  "name": "ABDULLAH BIN MOHD JEFRY",
  "firm": "AZMI & ASSOCIATES",
  "status": "Active",
  "memberStatus": "Active",
  "petitionStatus": null,
  "admissionDate": "07-07-2023",
  "petitionDate": null,
  "qualification": "UNIVERSITI MALAYA (UM)",
  "master": null,
  "address": "14TH FLOOR, MENARA KECK SENG, 203, JALAN BUKIT BINTANG",
  "city": "Kuala Lumpur",
  "state": "Wilayah Persekutuan Kuala Lumpur",
  "postcode": "55100",
  "phone": "0321185000",
  "fax": "0321185111",
  "email": "general@azmilaw.com",
  "website": "http://www.azmilaw.com",
  "lawyerNames": null,
  "pupilNames": null,
  "lastUpdated": "2026-03-12 10:39:15",
  "scrapedAt": "2026-04-23T09:55:57.123Z"
}
```

| Field | Type | Description |
|-------|------|-------------|
| recordType | string | `lawyer`, `firm`, or `pupil` |
| name | string | Full name of the lawyer, firm, or pupil |
| firm | string | Law firm name (for lawyers and pupils; equals `name` for firm records) |
| status | string | Practicing status (e.g. Active, Inactive) |
| memberStatus | string | Bar Council member/firm status |
| petitionStatus | string | Pupil petition status (pupils only) |
| admissionDate | string | Admission date in `DD-MM-YYYY` format (lawyers only) |
| petitionDate | string | Petition filing date in `DD-MM-YYYY` format (pupils only) |
| qualification | string | Law school or qualifying institution |
| master | string | Pupil master name (pupils only) |
| address | string | Street address, composed from the directory's three address lines |
| city | string | City or locality |
| state | string | Malaysian state or federal territory |
| postcode | string | Postal code |
| phone | string | Phone number(s), comma-separated if multiple |
| fax | string | Fax number |
| email | string | Contact email |
| website | string | Firm or lawyer website URL |
| lawyerNames | string | Comma-separated lawyer names at this firm (firm records only) |
| pupilNames | string | Comma-separated pupil names at this firm (firm records only) |
| lastUpdated | string | Last-updated timestamp from the directory (lawyers only) |
| scrapedAt | string | ISO-8601 timestamp when the record was fetched |

***

### FAQ

#### How do I scrape all lawyers in Malaysia?

Malaysian Bar Legal Directory Scraper covers the full country by default. Set `recordTypes` to `["lawyer"]` and leave `states` and `alphabets` empty — the scraper will iterate through every surname alphabet A–Z, which is how the underlying directory exposes the full roster. Set `maxItems` to `0` for an unlimited run.

#### How much does the Malaysian Bar Scraper cost to run?

Malaysian Bar Scraper uses pay-per-event pricing: $0.10 per actor start plus $0.001 per record saved. A run that extracts 500 lawyer profiles costs about $0.60. Targeted state-level runs (a few hundred records) land under $0.25.

#### Does the Malaysian Bar Scraper need proxies?

Malaysian Bar Scraper does not need proxies. The directory is a public PHP site with no anti-bot protection, no Cloudflare, and no rate limits worth speaking of. Direct connection works fine.

#### Can I filter by state or practice area?

Malaysian Bar Scraper supports state filtering via the `states` input (14 state codes, including `WPKL` for Kuala Lumpur and `SG` for Selangor). Practice-area filtering is supported by the upstream directory but is not exposed in this scraper's input schema — file an issue if you need it.

#### What's the difference between lawyer, firm, and pupil records?

Malaysian Bar Scraper returns three record types from the same directory. Lawyers are individual advocates and solicitors with admission dates and firm affiliations. Firms are law firms with aggregated contact info and a roster of affiliated lawyers and pupils. Pupils are lawyers-in-training (chambering) with a master, petition status, and petition date. All three share the same output schema — type-specific fields are `null` where they don't apply.

***

### Need More Features?

Need custom fields, practice-area filtering, or a scraper for a different legal directory? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use the Malaysian Bar Scraper?

- **Affordable** — $0.001 per record, which is less than the Ringgit you'd spend making the same data inquiry in person
- **Complete** — Covers lawyers, firms, and pupils across every Malaysian state in a single actor, with 18+ fields per record
- **Clean** — Returns structured JSON with consistent field names and flattened addresses, so you spend less time parsing PHP HTML and more time using the data

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

## `recordTypes` (type: `array`):

Which directory segments to crawl. Default: all three (lawyers, firms, pupils).

## `states` (type: `array`):

Restrict to specific states. Leave empty to crawl all of Malaysia (slower but complete). Codes follow the Malaysian Bar site.

## `alphabets` (type: `array`):

Restrict to surnames starting with specific letters. Leave empty to crawl all letters A-Z. Only applied when states is empty (site requires at least one filter per search).

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

Maximum total records to save across all record types and queries. Set to 0 for no limit.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "recordTypes": [
    "lawyer",
    "firm",
    "pupil"
  ],
  "states": [],
  "alphabets": [],
  "maxItems": 100
}
```

# Actor output Schema

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

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "recordTypes": [
        "lawyer",
        "firm",
        "pupil"
    ],
    "states": [],
    "alphabets": [],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/malaysian-bar-legal-directory-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "recordTypes": [
        "lawyer",
        "firm",
        "pupil",
    ],
    "states": [],
    "alphabets": [],
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/malaysian-bar-legal-directory-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "recordTypes": [
    "lawyer",
    "firm",
    "pupil"
  ],
  "states": [],
  "alphabets": [],
  "maxItems": 100
}' |
apify call jungle_synthesizer/malaysian-bar-legal-directory-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Malaysian Bar Legal Directory Scraper",
        "description": "Scrape the official Malaysian Bar Council Legal Directory for lawyers, law firms, and pupils. Extract names, firm affiliations, addresses, contact details, admission dates, and practicing status across all 15 Malaysian states and federal territories.",
        "version": "1.0",
        "x-build-id": "bfpgWiPXdbNC5EPXa"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~malaysian-bar-legal-directory-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-malaysian-bar-legal-directory-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/jungle_synthesizer~malaysian-bar-legal-directory-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-malaysian-bar-legal-directory-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/jungle_synthesizer~malaysian-bar-legal-directory-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-malaysian-bar-legal-directory-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": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "recordTypes": {
                        "title": "Record Types to Scrape",
                        "type": "array",
                        "description": "Which directory segments to crawl. Default: all three (lawyers, firms, pupils).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "lawyer",
                                "firm",
                                "pupil"
                            ],
                            "enumTitles": [
                                "Lawyers (advocates and solicitors)",
                                "Law firms",
                                "Pupils in chambers"
                            ]
                        },
                        "default": [
                            "lawyer",
                            "firm",
                            "pupil"
                        ]
                    },
                    "states": {
                        "title": "State Filter",
                        "type": "array",
                        "description": "Restrict to specific states. Leave empty to crawl all of Malaysia (slower but complete). Codes follow the Malaysian Bar site.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "JH",
                                "KD",
                                "KT",
                                "MK",
                                "NS",
                                "PH",
                                "PG",
                                "PK",
                                "PR",
                                "SG",
                                "TG",
                                "WPKL",
                                "WL",
                                "WPP"
                            ],
                            "enumTitles": [
                                "Johore (JH)",
                                "Kedah (KD)",
                                "Kelantan (KT)",
                                "Melaka (MK)",
                                "Negeri Sembilan (NS)",
                                "Pahang (PH)",
                                "Penang (PG)",
                                "Perak (PK)",
                                "Perlis (PR)",
                                "Selangor (SG)",
                                "Terengganu (TG)",
                                "Wilayah Persekutuan Kuala Lumpur (WPKL)",
                                "Wilayah Persekutuan Labuan (WL)",
                                "Wilayah Persekutuan Putrajaya (WPP)"
                            ]
                        },
                        "default": []
                    },
                    "alphabets": {
                        "title": "Alphabet Filter",
                        "type": "array",
                        "description": "Restrict to surnames starting with specific letters. Leave empty to crawl all letters A-Z. Only applied when states is empty (site requires at least one filter per search).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "A",
                                "B",
                                "C",
                                "D",
                                "E",
                                "F",
                                "G",
                                "H",
                                "I",
                                "J",
                                "K",
                                "L",
                                "M",
                                "N",
                                "O",
                                "P",
                                "Q",
                                "R",
                                "S",
                                "T",
                                "U",
                                "V",
                                "W",
                                "X",
                                "Y",
                                "Z"
                            ]
                        },
                        "default": []
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "type": "integer",
                        "description": "Maximum total records to save across all record types and queries. Set to 0 for no limit.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
