# Universal Web Printer (`autofacts/universal-web-printer`) Actor

A powerful web rendering Actor that converts URLs and HTML to PDF, PNG, JPEG, or WebP. Features smart scroll-stitch for full-page captures, element-level extraction, reading mode, watermark and PDF merging.

- **URL**: https://apify.com/autofacts/universal-web-printer.md
- **Developed by:** [Richard Feng](https://apify.com/autofacts) (community)
- **Categories:** Developer tools, Automation, Social media
- **Stats:** 30 total users, 13 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Universal Web Printer

> **HTML to PDF/Image & Screenshot** - A powerful web rendering Actor based on Crawlee and Playwright

### 🎯 Features

- **Multi-Format Output**: PDF, PNG, JPEG, WebP
- **Flexible Input**: URLs or raw HTML strings
- **Advanced View Modes**:
  - `viewport` - Capture exactly what you see
  - `full-page` - **Smart Scroll** technology to capture lazy-loaded content perfectly
  - `selector` - Extract specific DOM elements as vector-rich PDFs or images
  - `readability` - Distraction-free reading mode (Mozilla Readability integration)
- **Page Manipulation**:
  - Remove unwanted elements (ads, cookie banners)
  - Click buttons ("Load More", "I Agree")
  - Inject custom CSS
  - Hide fixed sticky elements
- **Security & Branding**:
  - **PDF Encryption**: Password protect your documents (RC4 128-bit)
  - **Watermarking**: Add text or image watermarks with custom positioning, royalty-free tiling, and transparency
- **Enterprise-Ready**: Proxy support, automatic retries, fingerprint evasion, and PDF merging

### 🚀 Quick Start

#### URL to PDF

```json
{
  "sourceType": "url",
  "startUrls": [{ "url": "https://example.com" }],
  "outputFormat": "pdf",
  "viewMode": "viewport"
}
````

#### HTML to Image

```json
{
  "sourceType": "html",
  "htmlContent": "<h1>Hello World</h1><p>This is a test.</p>",
  "baseUrl": "https://example.com",
  "outputFormat": "png",
  "viewportWidth": 1200,
  "viewportHeight": 630
}
```

#### Full Page Screenshot

```json
{
  "sourceType": "url",
  "startUrls": [{ "url": "https://news.ycombinator.com" }],
  "outputFormat": "png",
  "viewMode": "full-page",
  "smartScroll": true,
  "hideFixedElements": true
}
```

#### Element Extraction

```json
{
  "sourceType": "url",
  "startUrls": [{ "url": "https://example.com" }],
  "outputFormat": "pdf",
  "viewMode": "selector",
  "targetSelector": ".invoice-container"
}
```

### 📋 Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sourceType` | `url` | `html` | `url` | Input source type |
| `startUrls` | array | - | URLs to render |
| `htmlContent` | string | - | Raw HTML to render |
| `baseUrl` | string | - | Base URL for relative paths |
| `outputFormat` | `pdf` | `png` | `jpeg` | `webp` | `pdf` | Output file format |
| `viewMode` | `viewport` | `full-page` | `selector` | `readability` | `viewport` | Capture mode |
| `targetSelector` | string | - | CSS selector for element extraction |
| `viewportWidth` | integer | 1920 | Browser width |
| `viewportHeight` | integer | 1080 | Browser height |
| `scaleFactor` | integer | 2 | Device Scale Factor (DPR) |
| `paperFormat` | `A4` | `A3` | `Letter` | `Legal` | `Tabloid` | `A4` | PDF paper size |
| `printBackground` | boolean | `true` | Include backgrounds in PDF |
| `smartScroll` | boolean | `true` | Enable lazy-load triggering |
| `scrollDelay` | integer | 500 | Wait time after scroll (ms) |
| `waitForSelector` | string | - | Wait for element before capture |
| `removeSelectors` | array | `[]` | Elements to remove |
| `clickSelectors` | array | `[]` | Elements to click |
| `hideFixedElements` | boolean | `true` | Hide sticky navbars |
| `customCss` | string | - | Custom CSS to inject |
| `mergePdfs` | boolean | `false` | Merge all PDFs into one |
| `pdfPassword` | string | - | PDF encryption user/owner password |
| `imageQuality` | integer | 80 | Image compression (1-100) |
| `watermark` | object | - | Watermark configuration (see below) |

#### 💧 Watermark Configuration

The `watermark` object supports the following properties:

| Property | Type | Default | Description |
|----------|------|---------|-------------|
| `type` | `text` | `image` | - | Watermark type |
| `text` | string | - | Text content (for text type) |
| `imageUrl` | string (url) | - | Image URL (for image type) |
| `opacity` | number (0-1) | - | Opacity level |
| `color` | string | - | Text color (e.g. `red`, `#ff0000`, `rgba(...)`) |
| `size` | number | - | Font size (text) or scale % (image) |
| `rotation` | number | - | Rotation in degrees |
| `position` | enum | - | `center`, `top-left`, `top-right`, `bottom-left`, `bottom-right`, `tile` |

### 📤 Output

Results are saved to **Key-Value Store** and metadata to **Dataset**:

```json
{
  "url": "https://example.com",
  "sourceType": "url",
  "outputFormat": "pdf",
  "viewMode": "viewport",
  "fileName": "example_com_2025-12-10T06-30-00-000Z.pdf",
  "fileUrl": "example_com_2025-12-10T06-30-00-000Z.pdf",
  "fileSize": 123456,
  "pageCount": 2,
  "capturedAt": "2025-12-10T06:30:00.000Z"
}
```

### 🍳 Recipes

#### Recipe 1: Invoice Generation

```json
{
  "sourceType": "html",
  "htmlContent": "<html>...invoice template...</html>",
  "baseUrl": "https://yourdomain.com/assets/",
  "outputFormat": "pdf",
  "paperFormat": "A4",
  "printBackground": true
}
```

#### Recipe 2: News Archiving (Ad-Free)

```json
{
  "sourceType": "url",
  "startUrls": [{ "url": "https://news-site.com/article" }],
  "outputFormat": "pdf",
  "viewMode": "full-page",
  "removeSelectors": ["#cookie-banner", ".ad-container", ".newsletter-popup"],
  "hideFixedElements": true
}
```

#### Recipe 3: Social Media Card Generator

```json
{
  "sourceType": "html",
  "htmlContent": "<div style='width:1200px;height:630px;background:linear-gradient(135deg,#667eea,#764ba2);padding:40px;color:white;'><h1>My Article Title</h1></div>",
  "outputFormat": "png",
  "viewportWidth": 1200,
  "viewportHeight": 630
}
```

#### Recipe 4: Secure Document with Watermark

```json
{
  "sourceType": "url",
  "startUrls": [{ "url": "https://example.com/contract" }],
  "outputFormat": "pdf",
  "watermark": {
    "type": "text",
    "text": "CONFIDENTIAL",
    "opacity": 0.3,
    "rotation": -45,
    "position": "center",
    "color": "rgb(255, 0, 0)",
    "size": 50
  },
  "pdfPassword": "secure-password-123"
}
```

#### Recipe 5: Branded Image with Logo Tile

```json
{
  "sourceType": "url",
  "startUrls": [{ "url": "https://example.com" }],
  "outputFormat": "png",
  "watermark": {
    "type": "image",
    "imageUrl": "https://example.com/logo.png",
    "opacity": 0.2,
    "size": 15,
    "position": "tile"
  }
}
```

# Actor input Schema

## `sourceType` (type: `string`):

Choose whether to render from URL(s) or raw HTML string

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

List of URLs to render (required when Source Type is 'url')

## `htmlContent` (type: `string`):

Raw HTML string to render (required when Source Type is 'html')

## `baseUrl` (type: `string`):

Base URL for resolving relative paths in HTML content

## `outputFormat` (type: `string`):

Choose the output file format

## `viewMode` (type: `string`):

How to capture the page: viewport only, full page with smart scroll, specific element, or reading mode

## `viewportWidth` (type: `integer`):

Browser viewport width in pixels

## `viewportHeight` (type: `integer`):

Browser viewport height in pixels

## `scaleFactor` (type: `integer`):

Device Scale Factor (DPR) for higher quality screenshots (1=Standard, 2=Retina)

## `imageQuality` (type: `integer`):

Quality of the image (1-100) for JPEG/WebP formats

## `paperFormat` (type: `string`):

PDF paper size

## `printBackground` (type: `boolean`):

Include background colors and images in PDF output

## `mergePdfs` (type: `boolean`):

Merge all generated PDFs into a single file

## `pdfPassword` (type: `string`):

Password to encrypt the PDF output

## `smartScroll` (type: `boolean`):

Enable smart scrolling to trigger lazy-loaded content before capture

## `scrollDelay` (type: `integer`):

Wait time after each scroll step (in milliseconds)

## `waitForSelector` (type: `string`):

Wait for this CSS selector to appear before capturing

## `targetSelector` (type: `string`):

CSS selector for the element to capture (required when View Mode is 'selector')

## `removeSelectors` (type: `array`):

CSS selectors of elements to remove before capture (e.g., cookie banners, ads)

## `clickSelectors` (type: `array`):

CSS selectors of elements to click before capture (e.g., 'Load More' buttons)

## `hideFixedElements` (type: `boolean`):

Hide fixed/sticky positioned elements (navbars, floating buttons) during capture

## `customCss` (type: `string`):

Custom CSS to inject before rendering

## `watermark` (type: `object`):

Add watermark to output files

## `proxyConfiguration` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "sourceType": "url",
  "startUrls": [
    {
      "url": "https://apify.com/store"
    }
  ],
  "outputFormat": "pdf",
  "viewMode": "viewport",
  "viewportWidth": 1920,
  "viewportHeight": 1080,
  "scaleFactor": 2,
  "imageQuality": 80,
  "paperFormat": "A4",
  "printBackground": true,
  "mergePdfs": false,
  "smartScroll": true,
  "scrollDelay": 500,
  "removeSelectors": [],
  "clickSelectors": [],
  "hideFixedElements": true
}
```

# 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://apify.com/store"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("autofacts/universal-web-printer").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://apify.com/store" }] }

# Run the Actor and wait for it to finish
run = client.actor("autofacts/universal-web-printer").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://apify.com/store"
    }
  ]
}' |
apify call autofacts/universal-web-printer --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=autofacts/universal-web-printer",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Universal Web Printer",
        "description": "A powerful web rendering Actor that converts URLs and HTML to PDF, PNG, JPEG, or WebP. Features smart scroll-stitch for full-page captures, element-level extraction, reading mode, watermark and PDF merging.",
        "version": "0.0",
        "x-build-id": "AGODH1llU37miX6cQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/autofacts~universal-web-printer/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-autofacts-universal-web-printer",
                "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/autofacts~universal-web-printer/runs": {
            "post": {
                "operationId": "runs-sync-autofacts-universal-web-printer",
                "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/autofacts~universal-web-printer/run-sync": {
            "post": {
                "operationId": "run-sync-autofacts-universal-web-printer",
                "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": [
                    "sourceType"
                ],
                "properties": {
                    "sourceType": {
                        "title": "Source Type",
                        "enum": [
                            "url",
                            "html"
                        ],
                        "type": "string",
                        "description": "Choose whether to render from URL(s) or raw HTML string",
                        "default": "url"
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "List of URLs to render (required when Source Type is 'url')",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "htmlContent": {
                        "title": "HTML Content",
                        "type": "string",
                        "description": "Raw HTML string to render (required when Source Type is 'html')"
                    },
                    "baseUrl": {
                        "title": "Base URL",
                        "type": "string",
                        "description": "Base URL for resolving relative paths in HTML content"
                    },
                    "outputFormat": {
                        "title": "Output Format",
                        "enum": [
                            "pdf",
                            "png",
                            "jpeg",
                            "webp"
                        ],
                        "type": "string",
                        "description": "Choose the output file format",
                        "default": "pdf"
                    },
                    "viewMode": {
                        "title": "View Mode",
                        "enum": [
                            "viewport",
                            "full-page",
                            "selector",
                            "readability"
                        ],
                        "type": "string",
                        "description": "How to capture the page: viewport only, full page with smart scroll, specific element, or reading mode",
                        "default": "viewport"
                    },
                    "viewportWidth": {
                        "title": "Viewport Width",
                        "minimum": 320,
                        "maximum": 6000,
                        "type": "integer",
                        "description": "Browser viewport width in pixels",
                        "default": 1920
                    },
                    "viewportHeight": {
                        "title": "Viewport Height",
                        "minimum": 240,
                        "maximum": 6000,
                        "type": "integer",
                        "description": "Browser viewport height in pixels",
                        "default": 1080
                    },
                    "scaleFactor": {
                        "title": "Scale Factor",
                        "minimum": 1,
                        "maximum": 4,
                        "type": "integer",
                        "description": "Device Scale Factor (DPR) for higher quality screenshots (1=Standard, 2=Retina)",
                        "default": 2
                    },
                    "imageQuality": {
                        "title": "Image Quality",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Quality of the image (1-100) for JPEG/WebP formats",
                        "default": 80
                    },
                    "paperFormat": {
                        "title": "Paper Format",
                        "enum": [
                            "A4",
                            "A3",
                            "Letter",
                            "Legal",
                            "Tabloid"
                        ],
                        "type": "string",
                        "description": "PDF paper size",
                        "default": "A4"
                    },
                    "printBackground": {
                        "title": "Print Background",
                        "type": "boolean",
                        "description": "Include background colors and images in PDF output",
                        "default": true
                    },
                    "mergePdfs": {
                        "title": "Merge PDFs",
                        "type": "boolean",
                        "description": "Merge all generated PDFs into a single file",
                        "default": false
                    },
                    "pdfPassword": {
                        "title": "PDF Password",
                        "type": "string",
                        "description": "Password to encrypt the PDF output"
                    },
                    "smartScroll": {
                        "title": "Smart Scroll",
                        "type": "boolean",
                        "description": "Enable smart scrolling to trigger lazy-loaded content before capture",
                        "default": true
                    },
                    "scrollDelay": {
                        "title": "Scroll Delay (ms)",
                        "minimum": 100,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Wait time after each scroll step (in milliseconds)",
                        "default": 500
                    },
                    "waitForSelector": {
                        "title": "Wait For Selector",
                        "type": "string",
                        "description": "Wait for this CSS selector to appear before capturing"
                    },
                    "targetSelector": {
                        "title": "Target Selector",
                        "type": "string",
                        "description": "CSS selector for the element to capture (required when View Mode is 'selector')"
                    },
                    "removeSelectors": {
                        "title": "Remove Selectors",
                        "type": "array",
                        "description": "CSS selectors of elements to remove before capture (e.g., cookie banners, ads)",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "clickSelectors": {
                        "title": "Click Selectors",
                        "type": "array",
                        "description": "CSS selectors of elements to click before capture (e.g., 'Load More' buttons)",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "hideFixedElements": {
                        "title": "Hide Fixed Elements",
                        "type": "boolean",
                        "description": "Hide fixed/sticky positioned elements (navbars, floating buttons) during capture",
                        "default": true
                    },
                    "customCss": {
                        "title": "Custom CSS",
                        "type": "string",
                        "description": "Custom CSS to inject before rendering"
                    },
                    "watermark": {
                        "title": "Watermark Configuration",
                        "type": "object",
                        "description": "Add watermark to output files",
                        "properties": {
                            "type": {
                                "title": "Watermark Type",
                                "type": "string",
                                "enum": [
                                    "text",
                                    "image"
                                ],
                                "description": "Type of watermark"
                            },
                            "text": {
                                "title": "Text Content",
                                "type": "string",
                                "description": "Text content for text watermark"
                            },
                            "imageUrl": {
                                "title": "Image URL",
                                "type": "string",
                                "description": "URL for image watermark"
                            },
                            "opacity": {
                                "title": "Opacity",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 100,
                                "description": "Opacity percentage (0-100)"
                            },
                            "color": {
                                "title": "Text Color",
                                "type": "string",
                                "description": "Color for text watermark"
                            },
                            "size": {
                                "title": "Size",
                                "type": "integer",
                                "description": "Font size for text or scale factor for image"
                            },
                            "position": {
                                "title": "Position",
                                "type": "string",
                                "enum": [
                                    "center",
                                    "top-left",
                                    "top-right",
                                    "bottom-left",
                                    "bottom-right",
                                    "tile"
                                ],
                                "description": "Position of the watermark"
                            },
                            "rotation": {
                                "title": "Rotation",
                                "type": "integer",
                                "description": "Rotation angle in degrees"
                            }
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your crawler."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
