# Google Maps Shared List Scraper (`automation-lab/google-maps-shared-list-scraper`) Actor

🗺️ Export public Google Maps shared lists into structured place datasets with names, addresses, coordinates, notes, and list context.

- **URL**: https://apify.com/automation-lab/google-maps-shared-list-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.06 / 1,000 scraped places

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

## Google Maps Shared List Scraper

Export public Google Maps shared lists into clean place datasets for lead generation, travel research, venue sourcing, and market mapping.

### What does Google Maps Shared List Scraper do?

Google Maps Shared List Scraper turns a public Google Maps saved-list link into structured rows.

It accepts links such as:

- `https://maps.app.goo.gl/MMjvFNWpUTjiupHc9`
- `https://www.google.com/maps/placelists/list/...`

For every saved place that is visible in the public list payload, the actor exports the place name, address, coordinates, Google Maps link, list title, list owner, user note, and scrape timestamp.

### Who is it for?

This scraper is useful for several practical workflows:

- 🧑‍💼 **Lead-generation teams** exporting curated prospect lists from Google Maps.
- 🏙️ **Local-market researchers** turning neighborhood lists into CSV or JSON.
- 🍽️ **Restaurant and hospitality analysts** collecting saved venue shortlists.
- ✈️ **Travel planners** converting itineraries into structured data.
- 🧭 **Sales teams** sharing Google Maps lists internally and then enriching them in a CRM.
- 🧪 **Data analysts** who need repeatable exports from public Maps collections.

### Why use this actor?

Google Maps shared lists are easy to create but hard to analyze at scale. Copying place names by hand is slow and loses important context such as coordinates and notes.

This actor gives you:

- ✅ Public-list URL input
- ✅ One row per saved place
- ✅ List context on every row
- ✅ Coordinates when exposed by Google Maps
- ✅ Notes written by the list owner
- ✅ Dataset exports to CSV, JSON, Excel, XML, RSS, and HTML through Apify
- ✅ API access for scheduled or automated workflows

### What data can it extract?

| Field | Description |
| --- | --- |
| `listUrl` | Original URL you submitted |
| `resolvedListUrl` | Final Google Maps URL after redirects |
| `listId` | Public shared-list identifier |
| `listTitle` | List title when visible |
| `listOwner` | Public list owner name when visible |
| `listDescription` | List description when visible |
| `listPlaceCount` | Total places reported by Google Maps |
| `placeName` | Saved place name |
| `placeUrl` | Google Maps search URL for the place |
| `placeId` | Google feature ID or fallback ID |
| `googleFeatureId` | Google feature identifier when present |
| `address` | Place address from the shared-list payload |
| `latitude` | Latitude |
| `longitude` | Longitude |
| `category` | Reserved for detail enrichment; null when not exposed |
| `rating` | Reserved for detail enrichment; null when not exposed |
| `reviewCount` | Reserved for detail enrichment; null when not exposed |
| `phone` | Reserved for detail enrichment; null when not exposed |
| `website` | Reserved for detail enrichment; null when not exposed |
| `emails` | Reserved for website enrichment; empty by default |
| `openingHours` | Reserved for detail enrichment; empty by default |
| `imageUrl` | Reserved for detail enrichment; null when not exposed |
| `note` | Note/comment saved in the shared list |
| `sourceListContext` | Owner, title, and position within the list |
| `scrapedAt` | ISO timestamp for the scrape |

### How much does it cost to export Google Maps shared lists?

This actor uses pay-per-event pricing.

- A small start event is charged once per run.
- A result event is charged only for successfully extracted place records.
- Failed URLs and skipped lists are not charged as place results.

Formula-derived tier pricing is set from measured cloud run costs and rounded up to the platform-supported minimum. The BRONZE result price is $0.10 per 1,000 exported places before Apify account-tier discounts.

### Input

The main input is `listUrls`.

```json
{
  "listUrls": [
    { "url": "https://maps.app.goo.gl/MMjvFNWpUTjiupHc9" }
  ],
  "maxPlacesPerList": 20,
  "includeDetails": false,
  "includeWebsiteEmails": false,
  "language": "en",
  "countryCode": "us"
}
````

### Input fields

| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `listUrls` | array | Yes | sample URL | Public Google Maps shared-list URLs |
| `maxPlacesPerList` | integer | No | `20` | Maximum places to export from each list |
| `includeDetails` | boolean | No | `false` | Reserved for future detail enrichment |
| `includeWebsiteEmails` | boolean | No | `false` | Reserved for future email enrichment |
| `maxEmailsPerPlace` | integer | No | `3` | Reserved for future email enrichment |
| `language` | string | No | `en` | Google Maps language code |
| `countryCode` | string | No | `us` | Google Maps region code |

### Output example

```json
{
  "listUrl": "https://maps.app.goo.gl/MMjvFNWpUTjiupHc9",
  "resolvedListUrl": "https://www.google.com/maps/@...",
  "listId": "PiSwyqmbpwpP_Nr5sAang4x5QxbKwA",
  "listTitle": "Tokyo",
  "listOwner": "Shahed Khan",
  "listDescription": null,
  "listPlaceCount": 63,
  "placeName": "SAVOY Azabujuban",
  "placeUrl": "https://www.google.com/maps/search/?api=1&query=SAVOY%20Azabujuban...",
  "placeId": "/g/1tgpsl_t",
  "googleFeatureId": "/g/1tgpsl_t",
  "address": "Japan, 〒106-0045 Tokyo, Minato City...",
  "latitude": 35.6548695,
  "longitude": 139.7364827,
  "category": null,
  "rating": null,
  "reviewCount": null,
  "phone": null,
  "website": null,
  "emails": [],
  "openingHours": [],
  "imageUrl": null,
  "note": "Bluefin tuna pizza",
  "sourceListContext": {
    "owner": "Shahed Khan",
    "listTitle": "Tokyo",
    "position": 1
  },
  "scrapedAt": "2026-06-04T10:00:00.000Z"
}
```

### How to scrape a Google Maps shared list

1. Open Google Maps.
2. Open a public saved list.
3. Click **Share** and copy the public list link.
4. Paste the link into `listUrls`.
5. Set `maxPlacesPerList` to a safe first-run value such as 25.
6. Run the actor.
7. Download the dataset as CSV, JSON, Excel, or another Apify export format.

### Tips for best results

- Use public shared-list URLs, not private lists.
- Start with a low `maxPlacesPerList` to verify the list is accessible.
- Use `maps.app.goo.gl` short links or full `google.com/maps/placelists/list/...` URLs.
- Keep enrichment options disabled unless a future version enables them.
- If a list has fewer places than requested, the actor exports only the places Google Maps returns.

### Integrations

You can connect the output to common workflows:

- 🧾 Export CSV rows into Google Sheets.
- 🧑‍💼 Send places into a CRM as lead records.
- 🗺️ Join coordinates with GIS tools.
- 📊 Analyze curated venue lists in BI dashboards.
- 🔁 Schedule repeat runs through Apify tasks.
- 🧩 Trigger webhooks after each dataset is ready.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/google-maps-shared-list-scraper').call({
  listUrls: [{ url: 'https://maps.app.goo.gl/MMjvFNWpUTjiupHc9' }],
  maxPlacesPerList: 20
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/google-maps-shared-list-scraper').call(run_input={
    'listUrls': [{'url': 'https://maps.app.goo.gl/MMjvFNWpUTjiupHc9'}],
    'maxPlacesPerList': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### API usage with cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~google-maps-shared-list-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "listUrls": [{"url":"https://maps.app.goo.gl/MMjvFNWpUTjiupHc9"}],
    "maxPlacesPerList": 20
  }'
```

### MCP usage

Use the Apify MCP server with Claude Desktop or Claude Code:

```bash
claude mcp add apify-google-maps-shared-list "https://mcp.apify.com/?tools=automation-lab/google-maps-shared-list-scraper"
```

Claude Desktop JSON configuration:

```json
{
  "mcpServers": {
    "apify-google-maps-shared-list": {
      "url": "https://mcp.apify.com/?tools=automation-lab/google-maps-shared-list-scraper"
    }
  }
}
```

Direct MCP URL:

```text
https://mcp.apify.com/?tools=automation-lab/google-maps-shared-list-scraper
```

Example prompts:

- "Export this Google Maps shared list and summarize the venues by neighborhood."
- "Scrape this saved list and return a CSV of names, addresses, and coordinates."
- "Run the Google Maps Shared List Scraper for these three public list URLs."

### Limitations

Google Maps changes internal payloads over time. This actor is designed around the public shared-list payload and avoids high-risk browser scraping for the first version.

Some detail fields, such as phone, website, ratings, reviews, hours, and photos, may be null or empty unless Google exposes them in the shared-list response or a later enrichment version is enabled.

### Troubleshooting

#### Why did my run return no places?

Check that the list is public. Private or account-only lists cannot be exported without access and are not supported.

#### Why are phone or website fields empty?

The MVP exports reliable shared-list data. Phone and website are detail fields and may require separate place-detail enrichment, which is intentionally disabled in this build.

#### Can I scrape multiple lists at once?

Yes. Add multiple entries to `listUrls`. Each output row includes the source list context.

### FAQ

#### Is it legal to scrape Google Maps shared lists?

This actor is intended for public data that you are allowed to access. You are responsible for using the output in compliance with applicable laws, platform terms, privacy rules, and your own business policies.

#### Do private Google Maps lists work?

No. The actor only supports public shared lists that can be opened without logging in.

#### Does the actor enrich websites and emails?

Not in the MVP. Website and email fields are included for schema stability and future enrichment, but the current version avoids extra detail requests unless they become cheap and reliable.

### Legality

Use this actor only for public data that you are allowed to process. Do not scrape private lists, personal data you are not allowed to process, or content behind login walls. Review Google Maps terms and applicable privacy laws before using exported data in production workflows.

### Related scrapers

Other Apify actors by Automation Lab may help with adjacent workflows:

- https://apify.com/automation-lab/google-maps-scraper
- https://apify.com/automation-lab/google-search-scraper
- https://apify.com/automation-lab/google-news-scraper
- https://apify.com/automation-lab/trustpilot-scraper

### Changelog

#### 0.1

Initial build: export places from public Google Maps shared lists using an HTTP-first public list payload.

### Support

If a public list URL does not work, open an Apify issue and include:

- The list URL
- Your input JSON
- Run ID
- Whether the list opens in an incognito browser

### Development notes

This actor is built with the Apify SDK and TypeScript.

Local development uses:

```bash
npm install
npm run build
timeout 120 apify run
```

### Store keywords

Google Maps shared list scraper, Google Maps list export, Google Maps saved places CSV, Google Maps places dataset, Google Maps lead generation.

# Actor input Schema

## `listUrls` (type: `array`):

Public Google Maps shared-list URLs. Supports maps.app.goo.gl short links and google.com/maps/placelists/list/... URLs.

## `maxPlacesPerList` (type: `integer`):

Maximum number of saved places to export from each shared list.

## `includeDetails` (type: `boolean`):

Reserved for future detail expansion. The current build exports reliable shared-list fields and leaves detail-only fields empty when not present in the list payload.

## `includeWebsiteEmails` (type: `boolean`):

Reserved for future website/email enrichment. Keep disabled unless a later build enables it.

## `maxEmailsPerPlace` (type: `integer`):

Reserved for future website/email enrichment.

## `language` (type: `string`):

Language code passed to Google Maps, for example en, de, fr, es.

## `countryCode` (type: `string`):

Country/region code passed to Google Maps, for example us, de, gb, fr.

## Actor input object example

```json
{
  "listUrls": [
    {
      "url": "https://maps.app.goo.gl/MMjvFNWpUTjiupHc9"
    }
  ],
  "maxPlacesPerList": 20,
  "includeDetails": false,
  "includeWebsiteEmails": false,
  "maxEmailsPerPlace": 3,
  "language": "en",
  "countryCode": "us"
}
```

# Actor output Schema

## `datasetUrl` (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 = {
    "listUrls": [
        {
            "url": "https://maps.app.goo.gl/MMjvFNWpUTjiupHc9"
        }
    ],
    "language": "en",
    "countryCode": "us"
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/google-maps-shared-list-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 = {
    "listUrls": [{ "url": "https://maps.app.goo.gl/MMjvFNWpUTjiupHc9" }],
    "language": "en",
    "countryCode": "us",
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/google-maps-shared-list-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 '{
  "listUrls": [
    {
      "url": "https://maps.app.goo.gl/MMjvFNWpUTjiupHc9"
    }
  ],
  "language": "en",
  "countryCode": "us"
}' |
apify call automation-lab/google-maps-shared-list-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Shared List Scraper",
        "description": "🗺️ Export public Google Maps shared lists into structured place datasets with names, addresses, coordinates, notes, and list context.",
        "version": "0.1",
        "x-build-id": "kQuntAqxxT7WtguIY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~google-maps-shared-list-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-google-maps-shared-list-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~google-maps-shared-list-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-google-maps-shared-list-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~google-maps-shared-list-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-google-maps-shared-list-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": [
                    "listUrls"
                ],
                "properties": {
                    "listUrls": {
                        "title": "Google Maps shared-list URLs",
                        "type": "array",
                        "description": "Public Google Maps shared-list URLs. Supports maps.app.goo.gl short links and google.com/maps/placelists/list/... URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxPlacesPerList": {
                        "title": "Maximum places per list",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of saved places to export from each shared list.",
                        "default": 20
                    },
                    "includeDetails": {
                        "title": "Include extra place details",
                        "type": "boolean",
                        "description": "Reserved for future detail expansion. The current build exports reliable shared-list fields and leaves detail-only fields empty when not present in the list payload.",
                        "default": false
                    },
                    "includeWebsiteEmails": {
                        "title": "Include website/email enrichment",
                        "type": "boolean",
                        "description": "Reserved for future website/email enrichment. Keep disabled unless a later build enables it.",
                        "default": false
                    },
                    "maxEmailsPerPlace": {
                        "title": "Maximum emails per place",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Reserved for future website/email enrichment.",
                        "default": 3
                    },
                    "language": {
                        "title": "Google Maps language",
                        "type": "string",
                        "description": "Language code passed to Google Maps, for example en, de, fr, es.",
                        "default": "en"
                    },
                    "countryCode": {
                        "title": "Google Maps country code",
                        "type": "string",
                        "description": "Country/region code passed to Google Maps, for example us, de, gb, fr.",
                        "default": "us"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
