# Screenshot & HTML file from Url (`leadsbrary/screenshot-html-file-from-url`) Actor

From 1$/1000 results. Capture website screenshots &/or full-page HTML in one run, from $1/1000 URLs. PNG, JPEG & PDF — full-page, custom viewport, lazy-load scroll, cookie-banner hiding, batch mode. HTML files open correctly in any browser. REST API ready. No watermark.

- **URL**: https://apify.com/leadsbrary/screenshot-html-file-from-url.md
- **Developed by:** [Alexandre Manguis](https://apify.com/leadsbrary) (community)
- **Categories:** Automation, Integrations, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Screenshot & HTML file from URL

> **From $1 per 1 000 URLs** — capture a full-page screenshot **and** the complete HTML source in a single run. No watermark. REST API ready.

![Screenshot preview](https://api.apify.com/v2/key-value-stores/xPwdAFFR9ajvWzcs7/records/screenshot-preview.png)

---

### What it does

Open each URL in a real browser, wait for the page to fully load, then save two complementary outputs to Apify storage:

#### Visual capture — screenshot or PDF

| Option | Details |
|---|---|
| **Formats** | PNG · JPEG · PDF |
| **Full-page** | Captures the entire scrollable page, not just the viewport |
| **Custom viewport** | Set width × height in pixels |
| **JPEG quality** | Adjustable from 30 to 100 % |

#### Page archive — HTML source

When **Save HTML source** is enabled, the actor also saves the full page HTML as a `.html` file. All relative links (stylesheets, images, fonts, scripts) are automatically resolved against the original URL, so the file opens and renders correctly in any browser with no extra setup.

Both outputs are linked in the same dataset row. Use screenshots only, HTML only, or both together.

---

### Capture controls

| Option | Details |
|---|---|
| **Lazy-load scroll** | Scrolls to the bottom before capture to trigger deferred content |
| **CSS hiding** | Suppresses cookie banners, chat widgets, or any CSS selector before the shot |
| **Delay before capture** | Extra wait time after load for animations or late-rendered content |
| **Wait-until** | Choose between page load, DOM ready, or full network idle |
| **Retries** | Automatic retry on failure — configurable per URL |
| **Concurrency** | Run multiple captures in parallel |

---

### Best use cases

- **Visual regression testing** — compare pages before and after a deploy
- **Competitive monitoring** — daily snapshots of competitor landing pages
- **Content archiving** — preserve pages as timestamped PNG, PDF & HTML records
- **Lead enrichment** — attach a screenshot and raw HTML to each prospect's profile
- **Reporting & documentation** — auto-generate visual proof for QA or client reports
- **Data extraction pipelines** — feed the saved HTML into a downstream scraper
- **Thumbnail generation** — batch-produce previews for link directories or dashboards

---

### Quick start

1. Click **Try for free** (or call the API).
2. Paste one or more URLs into the **Page URLs** field.
3. Choose **PNG**, **JPEG**, or **PDF** as the output format.
4. Toggle **Save HTML source** on if you also want the HTML file.
5. Click **Start** — results appear in the **Dataset** and **Key-Value Store** tabs within seconds.

---

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `urls` | array | — | One or more URLs to capture |
| `format` | `png` / `jpeg` / `pdf` | `png` | Output file format |
| `fullPage` | boolean | `true` | Capture the entire page height |
| `saveHtml` | boolean | `false` | Also save the page HTML source as a `.html` file |
| `viewportWidth` | integer | `1280` | Viewport width in px |
| `viewportHeight` | integer | `720` | Viewport height in px |
| `jpegQuality` | integer | `90` | JPEG quality (30–100 %) |
| `waitUntil` | `load` / `domcontentloaded` / `networkidle` | `load` | When navigation is considered complete |
| `delayBeforeScreenshotMs` | integer | `0` | Extra wait after page load (ms) |
| `scrollToBottom` | boolean | `false` | Scroll to trigger lazy content before capture |
| `delayAfterScrollMs` | integer | `1000` | Wait after scroll (ms) |
| `selectorsToHide` | string | — | CSS selectors to hide before capture (one per line) |
| `navigationTimeoutSecs` | integer | `60` | Max time to load each page (s) |
| `maxRequestRetries` | integer | `1` | Retries on failure |
| `maxConcurrency` | integer | `1` | Parallel captures |
| `proxyConfiguration` | object | disabled | Optional proxy (Apify Proxy or custom URLs) |

---

### Output

#### Dataset (one row per URL)

| Field | Description |
|---|---|
| `ok` | `true` if the capture succeeded |
| `url` | Final URL after redirects |
| `title` | Page `<title>` |
| `statusCode` | HTTP status code |
| `screenshotUrl` | Direct download link for the screenshot or PDF |
| `htmlUrl` | Download link for the HTML source (when `saveHtml` is enabled) |
| `format` | `png`, `jpeg`, or `pdf` |
| `viewportWidth` / `viewportHeight` | Viewport used |
| `fullPage` | Whether full-page mode was active |
| `capturedAt` | ISO timestamp |
| `durationMs` | Capture duration in ms |
| `errorMessage` | Error detail if `ok` is `false` |

#### Key-Value Store

Files are stored with a deterministic key derived from the URL. The `screenshotUrl` and `htmlUrl` columns in the dataset link directly to each file.

If a URL fails after all retries the actor still writes a dataset row with `ok: false` and an `errorMessage`, so you never lose track of what failed.

---

### Tips

**Hiding cookie banners**
Use `selectorsToHide` to remove overlays before capture:
````

\#cookie-banner
.gdpr-overlay
\[data-cookienotice]

````

**Full-page vs. viewport-only**
Set `fullPage: false` to capture only what is visible without scrolling — useful for above-the-fold thumbnails.

**Slow or JS-heavy pages**
Switch `waitUntil` to `networkidle` and add 1 000–3 000 ms to `delayBeforeScreenshotMs`.

**Lazy-loaded images**
Enable `scrollToBottom` and raise `delayAfterScrollMs` to 2 000–5 000 ms.

**Feeding HTML into a scraper**
Enable `saveHtml`, grab the `htmlUrl` from the dataset, and parse the downloaded file downstream — no need to re-fetch the page.

**Scaling to thousands of URLs**
Increase `maxConcurrency` (up to 5) and consider enabling Apify Proxy to avoid rate-limits.

---

### Proxy settings

Proxies are disabled by default. Enable the **Proxies** section to:
- Use **Apify Proxy** (residential or datacenter)
- Supply your own proxy URLs

---

### Troubleshooting

| Symptom | Fix |
|---|---|
| Blank or all-white screenshot | Increase `delayBeforeScreenshotMs` or switch `waitUntil` to `networkidle` |
| Cookie overlay visible | Add the overlay selector to `selectorsToHide` |
| Lazy images missing | Enable `scrollToBottom` |
| Timeout error | Increase `navigationTimeoutSecs` or add a proxy |
| PDF is viewport-only | PDF format ignores `fullPage`; adjust `viewportWidth` and `viewportHeight` |
| HTML file looks broken | Make sure you are opening the `.html` file via a browser (not a text editor); all styles load from the live site |

---

### Keywords

website screenshot api · capture webpage · screenshot url · full page screenshot · webpage to pdf · save html page · html archiver · batch screenshot · visual monitoring · website thumbnail · web page archiving

# Actor input Schema

## `urls` (type: `array`):

Add one or more HTTP/HTTPS URLs to capture. Domains without a protocol are automatically opened as HTTPS.
## `format` (type: `string`):

Choose the file format stored in the Key-Value Store.
## `fullPage` (type: `boolean`):

Capture the whole page instead of only the visible viewport. Applies to PNG/JPEG output.
## `saveHtml` (type: `boolean`):

Also save the full page HTML as a .html file in the Key-Value Store and add the link in the dataset.
## `viewportWidth` (type: `integer`):

Browser viewport width before the screenshot is taken.
## `viewportHeight` (type: `integer`):

Browser viewport height before the screenshot is taken.
## `jpegQuality` (type: `integer`):

Quality used when the output format is JPEG.
## `waitUntil` (type: `string`):

When navigation is considered ready enough for the capture.
## `delayBeforeScreenshotMs` (type: `integer`):

Extra wait time after navigation and before the screenshot/PDF is created.
## `scrollToBottom` (type: `boolean`):

Scroll the page before the capture to trigger lazy-loaded content, then return to the top.
## `delayAfterScrollMs` (type: `integer`):

Extra wait time after scrolling to allow lazy-loaded images and content to appear.
## `selectorsToHide` (type: `string`):

Optional CSS selectors to hide before the capture. Add one selector per line, for example: .cookie-banner
## `navigationTimeoutSecs` (type: `integer`):

Maximum time allowed for loading each page.
## `maxRequestRetries` (type: `integer`):

How many times a failed URL should be retried before an error record is written to the dataset.
## `maxConcurrency` (type: `integer`):

How many pages can be captured at the same time. Keep this low for large pages or low-memory runs.
## `proxyConfiguration` (type: `object`):

Optional proxy setup. Leave the default value to run without proxies. Enable Apify Proxy or add custom proxy URLs only when needed.

## Actor input object example

```json
{
  "urls": [
    {
      "url": "https://www.apify.com/"
    }
  ],
  "format": "png",
  "fullPage": true,
  "saveHtml": false,
  "viewportWidth": 1280,
  "viewportHeight": 720,
  "jpegQuality": 90,
  "waitUntil": "load",
  "delayBeforeScreenshotMs": 0,
  "scrollToBottom": false,
  "delayAfterScrollMs": 1000,
  "selectorsToHide": "",
  "navigationTimeoutSecs": 60,
  "maxRequestRetries": 1,
  "maxConcurrency": 1,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

# Actor output Schema

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

Dataset with one row per URL: screenshot link, HTML link, HTTP status code and capture metadata.

# 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 = {
    "urls": [
        {
            "url": "https://www.apify.com/"
        }
    ],
    "format": "png",
    "waitUntil": "load",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("leadsbrary/screenshot-html-file-from-url").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 = {
    "urls": [{ "url": "https://www.apify.com/" }],
    "format": "png",
    "waitUntil": "load",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("leadsbrary/screenshot-html-file-from-url").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 '{
  "urls": [
    {
      "url": "https://www.apify.com/"
    }
  ],
  "format": "png",
  "waitUntil": "load",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call leadsbrary/screenshot-html-file-from-url --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=leadsbrary/screenshot-html-file-from-url",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Screenshot & HTML file from Url",
        "description": "From 1$/1000 results. Capture website screenshots &/or full-page HTML in one run, from $1/1000 URLs. PNG, JPEG & PDF — full-page, custom viewport, lazy-load scroll, cookie-banner hiding, batch mode. HTML files open correctly in any browser. REST API ready. No watermark.",
        "version": "0.1",
        "x-build-id": "OLwExBPS8im1LHADv"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/leadsbrary~screenshot-html-file-from-url/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-leadsbrary-screenshot-html-file-from-url",
                "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/leadsbrary~screenshot-html-file-from-url/runs": {
            "post": {
                "operationId": "runs-sync-leadsbrary-screenshot-html-file-from-url",
                "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/leadsbrary~screenshot-html-file-from-url/run-sync": {
            "post": {
                "operationId": "run-sync-leadsbrary-screenshot-html-file-from-url",
                "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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Page URLs",
                        "type": "array",
                        "description": "Add one or more HTTP/HTTPS URLs to capture. Domains without a protocol are automatically opened as HTTPS.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "format": {
                        "title": "Output format",
                        "enum": [
                            "png",
                            "jpeg",
                            "pdf"
                        ],
                        "type": "string",
                        "description": "Choose the file format stored in the Key-Value Store.",
                        "default": "png"
                    },
                    "fullPage": {
                        "title": "Full-page screenshot",
                        "type": "boolean",
                        "description": "Capture the whole page instead of only the visible viewport. Applies to PNG/JPEG output.",
                        "default": true
                    },
                    "saveHtml": {
                        "title": "Save HTML source",
                        "type": "boolean",
                        "description": "Also save the full page HTML as a .html file in the Key-Value Store and add the link in the dataset.",
                        "default": false
                    },
                    "viewportWidth": {
                        "title": "Viewport width",
                        "minimum": 320,
                        "maximum": 3840,
                        "type": "integer",
                        "description": "Browser viewport width before the screenshot is taken.",
                        "default": 1280
                    },
                    "viewportHeight": {
                        "title": "Viewport height",
                        "minimum": 240,
                        "maximum": 2160,
                        "type": "integer",
                        "description": "Browser viewport height before the screenshot is taken.",
                        "default": 720
                    },
                    "jpegQuality": {
                        "title": "JPEG quality",
                        "minimum": 30,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Quality used when the output format is JPEG.",
                        "default": 90
                    },
                    "waitUntil": {
                        "title": "Wait until",
                        "enum": [
                            "load",
                            "domcontentloaded",
                            "networkidle"
                        ],
                        "type": "string",
                        "description": "When navigation is considered ready enough for the capture.",
                        "default": "load"
                    },
                    "delayBeforeScreenshotMs": {
                        "title": "Delay before capture",
                        "minimum": 0,
                        "maximum": 300000,
                        "type": "integer",
                        "description": "Extra wait time after navigation and before the screenshot/PDF is created.",
                        "default": 0
                    },
                    "scrollToBottom": {
                        "title": "Scroll to bottom first",
                        "type": "boolean",
                        "description": "Scroll the page before the capture to trigger lazy-loaded content, then return to the top.",
                        "default": false
                    },
                    "delayAfterScrollMs": {
                        "title": "Delay after scrolling",
                        "minimum": 0,
                        "maximum": 300000,
                        "type": "integer",
                        "description": "Extra wait time after scrolling to allow lazy-loaded images and content to appear.",
                        "default": 1000
                    },
                    "selectorsToHide": {
                        "title": "Selectors to hide",
                        "type": "string",
                        "description": "Optional CSS selectors to hide before the capture. Add one selector per line, for example: .cookie-banner",
                        "default": ""
                    },
                    "navigationTimeoutSecs": {
                        "title": "Navigation timeout",
                        "minimum": 5,
                        "maximum": 300,
                        "type": "integer",
                        "description": "Maximum time allowed for loading each page.",
                        "default": 60
                    },
                    "maxRequestRetries": {
                        "title": "Retries per URL",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "How many times a failed URL should be retried before an error record is written to the dataset.",
                        "default": 1
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "How many pages can be captured at the same time. Keep this low for large pages or low-memory runs.",
                        "default": 1
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional proxy setup. Leave the default value to run without proxies. Enable Apify Proxy or add custom proxy URLs only when needed.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
