# Webinar Landing Page Extractor (`automation-lab/webinar-landing-page-extractor`) Actor

Extract webinar titles, dates, speakers, registration links, platform hints, and evidence from public event hubs and landing pages.

- **URL**: https://apify.com/automation-lab/webinar-landing-page-extractor.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Webinar Landing Page Extractor

Extract structured webinar intelligence from public webinar pages, event hubs, registration pages, and on-demand landing pages.

Use this actor when you need a clean dataset of webinar titles, hosts, dates, speakers, registration links, topics, platform hints, and evidence snippets without manually copying data from marketing pages.

### What does Webinar Landing Page Extractor do?

Webinar Landing Page Extractor crawls public pages that promote webinars, demos, virtual events, workshops, and on-demand sessions.

It reads the HTML, JSON-LD event metadata, headings, CTA links, and visible page text.

Then it returns normalized webinar records that are ready for spreadsheets, CRM enrichment, competitive research, and content calendars.

The actor does not bypass logins, private forms, paywalls, or registrant lists.

It only extracts information visible on public landing pages.

### Who is it for?

Demand generation teams use it to monitor competitor webinar programs.

Revenue operations teams use it to build a repeatable feed of upcoming registration pages.

SDR teams use it to find topical events and timing signals for outreach.

Content marketers use it to audit webinar hubs and repurpose event topics.

Agencies use it to compare webinar calendars across many client competitors.

Analysts use it to normalize public event pages from many different website templates.

### Why use it?

Public webinar pages are inconsistent.

One site uses JSON-LD Event markup.

Another hides the date in body copy.

Another uses a generic event hub with registration cards.

This actor combines structured extraction with resilient heuristics and evidence snippets, so you can review ambiguous records quickly.

### What data can it extract?

| Field | Description |
| --- | --- |
| `title` | Webinar or event title |
| `host` | Website, organization, or event organizer |
| `dateText` | Raw date/time text found on the page |
| `startDateIso` | Parsed structured start date when available |
| `timezone` | Timezone abbreviation when visible |
| `status` | `upcoming`, `on-demand`, `past`, or `unknown` |
| `registrationUrl` | Best registration, watch, reserve, or join CTA link |
| `ctaText` | Visible text for the registration CTA |
| `speakers` | Speaker or presenter names when visible |
| `topics` | Headings and topic snippets from the page |
| `platformHints` | Zoom, ON24, Webex, Airmeet, BrightTALK, and similar hints |
| `confidence` | Extraction confidence score from 0 to 1 |
| `evidenceText` | Raw evidence used to support the record |

### How much does it cost to extract webinar landing pages?

This actor uses pay-per-event pricing.

You pay a small start fee per run and a per-record event for each webinar record saved.

The default input is intentionally small so first tests stay inexpensive.

For large webinar hubs, increase `maxPagesPerStartUrl` and `maxItems` after a smoke test.

### Quick start

1. Open the actor on Apify.
2. Paste one or more public webinar, event, or registration URLs into `startUrls`.
3. Keep `discoverLinks` enabled if the URL is a hub page.
4. Set `maxItems` to the number of webinar records you want.
5. Run the actor.
6. Export the dataset as JSON, CSV, Excel, or connect it to your workflow.

### Input options

#### `startUrls`

Use public webinar landing pages, webinar hubs, event pages, or registration pages.

Examples:

- `https://www.salesforce.com/resources/webinars/`
- `https://www.semrush.com/webinars/`
- A competitor webinar registration URL
- A product demo event page

#### `maxItems`

Stops the run after this many webinar records are saved.

Use a small number for testing.

Use a larger number for complete hub extraction.

#### `discoverLinks`

When enabled, the actor follows same-domain links that look like webinar, event, demo, workshop, register, or on-demand pages.

Disable this when you only want the exact URLs you provided.

#### `maxPagesPerStartUrl`

Caps how many pages the actor fetches for each start URL.

This protects your run budget and avoids crawling an entire website.

#### `includeKeywords`

Optional keywords that must appear in the extracted title, host, or evidence.

Use this for topic-specific monitoring, such as `AI`, `security`, or `SEO`.

#### `excludeKeywords`

Optional keywords that exclude matching records.

Use this to remove careers pages, unrelated conferences, or archived content.

### Output example

```json
{
  "sourceUrl": "https://www.example.com/webinars/",
  "pageUrl": "https://www.example.com/webinars/ai-demo",
  "title": "AI Demo Webinar",
  "host": "Example",
  "dateText": "July 30, 2026 at 2 PM EST",
  "status": "upcoming",
  "registrationUrl": "https://www.example.com/register/ai-demo",
  "speakers": [{ "name": "Jane Doe", "role": "VP Marketing" }],
  "topics": ["AI Demo Webinar", "How teams automate workflows"],
  "platformHints": ["zoom"],
  "confidence": 0.85,
  "evidenceText": "AI Demo Webinar | July 30, 2026 at 2 PM EST | Register now"
}
````

### Discovery mode

Discovery mode is designed for webinar hub pages.

The actor fetches the hub page first.

Then it follows same-domain links whose URL or anchor text suggests webinar, event, demo, workshop, registration, or on-demand content.

It does not crawl off-domain links during discovery.

This keeps the run focused on the website you provided.

### Date and timezone handling

The actor prefers structured JSON-LD event dates when a page provides them.

If no structured date exists, it looks for visible date and time text.

Date parsing can be ambiguous across regions and page templates.

For that reason, the actor always includes `dateText` and `evidenceText` so you can audit important records.

### Speaker extraction

Speaker data is extracted from JSON-LD performer/speaker fields when available.

The actor also checks common speaker and presenter sections in the HTML.

Because every website template is different, speaker fields may be empty for some pages.

Use `evidenceText` and `topics` to review ambiguous pages.

### Registration link extraction

The actor searches visible links and buttons for labels such as:

- Register
- Save my spot
- Reserve
- Sign up
- Watch now
- View webinar
- On demand
- Join

The best matching URL is returned as `registrationUrl`.

### Platform hints

The actor scans public page text and links for common webinar platform hints.

Examples include Zoom, ON24, GoToWebinar, Webex, Microsoft Teams, Airmeet, BrightTALK, Demio, Livestorm, BigMarker, Hopin, Goldcast, and Bizzabo.

These hints are useful for routing events into the right operational workflow.

### Confidence score

`confidence` is a simple extraction-quality score.

It increases when the actor finds a title, date, registration CTA, speakers, structured event metadata, and platform hints.

Low-confidence records are still saved because public pages can be messy.

Use the score to prioritize manual review.

### Tips for better results

Start with official webinar hubs rather than generic homepages.

Keep `maxPagesPerStartUrl` modest for first runs.

Use `includeKeywords` when monitoring a narrow product category.

Use `excludeKeywords` to remove archived topics or unrelated event pages.

Review `evidenceText` for any record that will trigger an automated action.

### Integrations

Send extracted webinar records to Google Sheets for editorial calendars.

Push upcoming events into a CRM enrichment queue.

Sync registration links to Slack alerts for competitive-intel teams.

Store webinar topics in a warehouse for trend analysis.

Feed public webinar evidence into an LLM workflow for summarization.

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/webinar-landing-page-extractor').call({
  startUrls: [{ url: 'https://www.salesforce.com/resources/webinars/' }],
  maxItems: 20,
  discoverLinks: true,
});
console.log(run.defaultDatasetId);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient()
run = client.actor('automation-lab/webinar-landing-page-extractor').call(run_input={
    'startUrls': [{'url': 'https://www.salesforce.com/resources/webinars/'}],
    'maxItems': 20,
    'discoverLinks': True,
})
print(run['defaultDatasetId'])
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~webinar-landing-page-extractor/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://www.salesforce.com/resources/webinars/"}],"maxItems":20,"discoverLinks":true}'
```

### MCP usage

Use the Apify MCP server with Claude Code, Claude Desktop, or another MCP client.

MCP URL:

`https://mcp.apify.com/?tools=automation-lab/webinar-landing-page-extractor`

Claude Code setup:

```bash
claude mcp add apify-webinar-extractor https://mcp.apify.com/?tools=automation-lab/webinar-landing-page-extractor
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-webinar-extractor": {
      "url": "https://mcp.apify.com/?tools=automation-lab/webinar-landing-page-extractor"
    }
  }
}
```

Example prompts:

- "Extract upcoming webinars from these competitor event hubs and return registration URLs."
- "Find AI-related webinars on these public marketing sites."
- "Summarize the speakers and dates from this webinar dataset."

### Legality and compliance

This actor extracts publicly visible webpage content.

Do not use it to bypass login walls, gated forms, private registrant lists, or access controls.

Review the target website terms and applicable laws before using scraped data in production.

Avoid storing personal data unless you have a lawful basis and clear business need.

### FAQ

#### Can it extract private attendee or registrant lists?

No. It only extracts public landing-page information and does not bypass forms, accounts, or registration gates.

### Troubleshooting

#### Why is `dateText` filled but `startDateIso` empty?

Some websites publish human-readable dates without machine-readable dates.

The actor keeps the raw date evidence so you can review or parse it downstream.

#### Why are speakers empty?

Some landing pages hide speakers in images, scripts, or late-loaded widgets.

Try using a specific webinar detail URL instead of a high-level hub page.

#### Why did a hub return unrelated topics?

Hub pages contain navigation, product names, and general marketing copy.

Use `includeKeywords`, `excludeKeywords`, or lower `maxPagesPerStartUrl` to focus the run.

### Related scrapers

Explore other Automation Lab actors at `https://apify.com/automation-lab/` for lead research, content extraction, website auditing, and market-intelligence workflows.

Use this actor alongside generic website crawlers when you need normalized event fields instead of raw page text.

### Changelog

Initial version extracts public webinar landing-page data with HTTP, Cheerio, JSON-LD parsing, heuristic date/CTA/speaker detection, link discovery, confidence scoring, and evidence snippets.

# Actor input Schema

## `startUrls` (type: `array`):

Public webinar, event, registration, or webinar-hub URLs to inspect.

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

Stop after this many webinar/event records have been saved.

## `discoverLinks` (type: `boolean`):

When enabled, the actor follows same-domain webinar, event, demo, and registration links found on each start page.

## `maxPagesPerStartUrl` (type: `integer`):

Caps same-domain discovery for each source URL. Keep low for quick tests; increase for full webinar hubs.

## `includeKeywords` (type: `array`):

Optional keywords that must appear in the webinar title, host, or evidence text.

## `excludeKeywords` (type: `array`):

Optional keywords that exclude matching webinar records.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.salesforce.com/resources/webinars/"
    },
    {
      "url": "https://www.semrush.com/webinars/"
    }
  ],
  "maxItems": 20,
  "discoverLinks": true,
  "maxPagesPerStartUrl": 20,
  "includeKeywords": [],
  "excludeKeywords": []
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.salesforce.com/resources/webinars/"
        },
        {
            "url": "https://www.semrush.com/webinars/"
        }
    ],
    "maxItems": 20,
    "discoverLinks": true,
    "maxPagesPerStartUrl": 20,
    "includeKeywords": [],
    "excludeKeywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/webinar-landing-page-extractor").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 = {
    "startUrls": [
        { "url": "https://www.salesforce.com/resources/webinars/" },
        { "url": "https://www.semrush.com/webinars/" },
    ],
    "maxItems": 20,
    "discoverLinks": True,
    "maxPagesPerStartUrl": 20,
    "includeKeywords": [],
    "excludeKeywords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/webinar-landing-page-extractor").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 '{
  "startUrls": [
    {
      "url": "https://www.salesforce.com/resources/webinars/"
    },
    {
      "url": "https://www.semrush.com/webinars/"
    }
  ],
  "maxItems": 20,
  "discoverLinks": true,
  "maxPagesPerStartUrl": 20,
  "includeKeywords": [],
  "excludeKeywords": []
}' |
apify call automation-lab/webinar-landing-page-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Webinar Landing Page Extractor",
        "description": "Extract webinar titles, dates, speakers, registration links, platform hints, and evidence from public event hubs and landing pages.",
        "version": "0.1",
        "x-build-id": "dBp5g4SYSOlxPyTYe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~webinar-landing-page-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-webinar-landing-page-extractor",
                "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~webinar-landing-page-extractor/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-webinar-landing-page-extractor",
                "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~webinar-landing-page-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-webinar-landing-page-extractor",
                "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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Public webinar, event, registration, or webinar-hub URLs to inspect.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum webinar records",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Stop after this many webinar/event records have been saved.",
                        "default": 20
                    },
                    "discoverLinks": {
                        "title": "Discover webinar links on start pages",
                        "type": "boolean",
                        "description": "When enabled, the actor follows same-domain webinar, event, demo, and registration links found on each start page.",
                        "default": true
                    },
                    "maxPagesPerStartUrl": {
                        "title": "Maximum pages per start URL",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Caps same-domain discovery for each source URL. Keep low for quick tests; increase for full webinar hubs.",
                        "default": 20
                    },
                    "includeKeywords": {
                        "title": "Include keywords",
                        "type": "array",
                        "description": "Optional keywords that must appear in the webinar title, host, or evidence text.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "excludeKeywords": {
                        "title": "Exclude keywords",
                        "type": "array",
                        "description": "Optional keywords that exclude matching webinar records.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
