# Website Content Crawler Lite (`fetch_cat/website-content-crawler-lite`) Actor

Crawl public website pages and extract clean text, Markdown, metadata, and links for AI, SEO, and monitoring workflows.

- **URL**: https://apify.com/fetch\_cat/website-content-crawler-lite.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** AI, SEO tools, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.10 / 1,000 page extracteds

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

## Website Content Crawler Lite

Turn public website pages into clean content for AI, SEO, research, monitoring, and documentation workflows.

Website Content Crawler Lite starts from one or more public URLs, follows links within your chosen scope, and saves page metadata, clean text, Markdown, optional HTML, discovered links, crawl depth, and skip/error context.

It is designed for teams that want a simple, predictable website crawler without heavyweight setup.

---

### What does Website Content Crawler Lite do?

Website Content Crawler Lite crawls public web pages and creates structured page records.

Each successful page can include:

- ✅ requested URL
- ✅ final loaded URL
- ✅ page title
- ✅ meta description
- ✅ first H1
- ✅ clean text
- ✅ Markdown content
- ✅ optional cleaned HTML
- ✅ discovered links
- ✅ HTTP status
- ✅ content type
- ✅ crawl depth
- ✅ parent URL
- ✅ timestamp

Skipped pages are also reported with a reason, so you can see what happened without paying for a successful extraction that did not happen.

---

### Who is it for?

Website Content Crawler Lite is for teams that need structured public website content without building and maintaining their own crawler.

### Who is this website crawler for?

#### AI and RAG teams

Use it to collect clean page text and Markdown for retrieval-augmented generation, internal knowledge bases, chatbot grounding, and document pipelines.

#### SEO and content teams

Use it to audit page titles, descriptions, H1 tags, internal links, and crawl coverage across a small website or documentation section.

#### Growth and operations teams

Use it to monitor public pages, collect content snapshots, or build lightweight lead and content enrichment workflows.

#### Developers and automation builders

Use it as a low-friction page extraction step inside Apify tasks, Make scenarios, Zapier flows, or custom API jobs.

---

### Why use this actor?

- 🚀 Simple inputs: start URLs, page limit, depth, and filters
- 🧭 Safe defaults: same-domain crawling is enabled by default
- 📄 Useful output: text, Markdown, metadata, and links in one row
- 💸 Predictable pricing: charged per successfully extracted page
- 🧱 Automation-ready: dataset output works with exports and APIs
- 🔍 Transparent skips: blocked, filtered, and non-HTML pages are marked

---

### What data can you extract?

| Field | Description |
|---|---|
| `url` | URL originally scheduled for crawling |
| `loadedUrl` | Final URL after redirects |
| `title` | HTML title or Open Graph title |
| `description` | Meta description or Open Graph description |
| `h1` | First H1 text on the page |
| `text` | Clean plain text from the page |
| `markdown` | Markdown version when `outputFormat` is `markdown` |
| `html` | Cleaned HTML when `outputFormat` is `html` |
| `links` | Public links discovered on the page |
| `statusCode` | HTTP status code |
| `contentType` | Response content type |
| `depth` | Link depth from the start URL |
| `parentUrl` | Page that discovered this URL |
| `fetchedAt` | ISO timestamp for the fetch |
| `error` | Error detail when a request fails |
| `skippedReason` | Reason a page was skipped |

---

### How much does it cost to crawl website content?

The actor uses pay-per-event pricing.

- A small one-time start event covers run setup.
- A page event is charged only for each successfully extracted HTML page.
- Skipped pages, non-HTML files, robots-disallowed pages, filtered URLs, and request failures are not charged as extracted pages.

For example, if you crawl 100 successful pages, you pay for 100 extracted page events plus the small run start event.

This makes it practical for small tests and recurring website monitoring jobs.

---

### Quick start

1. Open the actor on Apify.
2. Add one or more public start URLs.
3. Set `maxPages` to a small number for the first run.
4. Keep `sameDomainOnly` enabled unless you intentionally want broader crawling.
5. Choose `markdown`, `text`, or `html` output.
6. Run the actor.
7. Export the dataset as JSON, CSV, Excel, or connect it to your workflow.

---

### Example input

```json
{
  "startUrls": [
    { "url": "https://example.com" }
  ],
  "maxPages": 5,
  "maxDepth": 1,
  "sameDomainOnly": true,
  "outputFormat": "markdown",
  "respectRobotsTxt": true,
  "requestTimeoutSecs": 20
}
````

***

### Input options

#### `startUrls`

A list of public HTTP or HTTPS pages where crawling should start.

#### `maxPages`

The maximum number of pages to fetch in the run. Start low when testing.

#### `maxDepth`

How many link levels to follow. Use `0` to extract only the start URLs.

#### `sameDomainOnly`

When true, the actor crawls only links on the same domain as the start URL.

#### `includeGlobs`

Optional URL patterns that must match for a URL to be crawled.

Example:

```json
["https://example.com/docs/**"]
```

#### `excludeGlobs`

Optional URL patterns to skip.

Example:

```json
["**/login**", "**/signup**"]
```

#### `outputFormat`

Choose one of:

- `markdown`
- `text`
- `html`

#### `respectRobotsTxt`

When enabled, the actor checks robots rules and skips disallowed pages.

#### `requestTimeoutSecs`

Maximum time to wait for one page response.

***

### Output example

```json
{
  "url": "https://example.com/",
  "loadedUrl": "https://example.com/",
  "title": "Example Domain",
  "description": null,
  "h1": "Example Domain",
  "text": "Example Domain This domain is for use in illustrative examples in documents.",
  "markdown": "# Example Domain\n\nThis domain is for use in illustrative examples in documents.",
  "links": ["https://www.iana.org/domains/example"],
  "statusCode": 200,
  "contentType": "text/html",
  "depth": 0,
  "parentUrl": null,
  "fetchedAt": "2026-06-20T00:00:00.000Z"
}
```

***

### Tips for better crawl results

- Start with `maxPages` between 5 and 20.
- Use `maxDepth: 0` for page extraction only.
- Use `maxDepth: 1` for small site sections.
- Keep `sameDomainOnly` enabled for predictable runs.
- Use include globs for documentation folders.
- Use exclude globs for login, cart, account, and search pages.
- Prefer Markdown for AI and RAG workflows.
- Prefer text for simple keyword or monitoring jobs.
- Prefer HTML only when downstream tools need markup.

***

### Common use cases

#### Build a RAG content feed

Crawl a public documentation site and export Markdown rows to a vector database pipeline.

#### Audit SEO metadata

Crawl a content section and review titles, descriptions, H1s, and status codes.

#### Monitor public website copy

Run the actor on a schedule and compare page text over time.

#### Extract documentation pages

Use include globs like `https://example.com/docs/**` to stay inside a docs section.

#### Collect link maps

Use `links`, `depth`, and `parentUrl` to understand how a small site section connects.

***

### Integrations

#### Apify datasets

Every page result is saved to the default dataset. Export as JSON, CSV, Excel, XML, RSS, or HTML.

#### Apify API

Start runs from your own backend and fetch the dataset after completion.

#### Make and Zapier

Use completed runs as triggers for notifications, indexing, spreadsheets, or content review workflows.

#### Vector databases

Send Markdown or text fields to Pinecone, Weaviate, Qdrant, Chroma, or your internal embeddings pipeline.

#### Monitoring workflows

Schedule recurring runs and compare exported text fields between runs.

***

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/website-content-crawler-lite').call({
  startUrls: [{ url: 'https://example.com' }],
  maxPages: 5,
  maxDepth: 1,
  outputFormat: 'markdown'
});

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

***

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/website-content-crawler-lite').call(run_input={
    'startUrls': [{'url': 'https://example.com'}],
    'maxPages': 5,
    'maxDepth': 1,
    'outputFormat': 'markdown',
})

items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

***

### API usage with cURL

```bash
curl "https://api.apify.com/v2/acts/fetch_cat~website-content-crawler-lite/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "startUrls": [{"url": "https://example.com"}],
    "maxPages": 5,
    "maxDepth": 1,
    "outputFormat": "markdown"
  }'
```

***

### MCP usage

Use this actor from MCP-enabled tools through Apify MCP Server.

MCP URL:

```text
https://mcp.apify.com/?tools=fetch_cat/website-content-crawler-lite
```

#### Claude Code MCP setup

```bash
claude mcp add apify https://mcp.apify.com/?tools=fetch_cat/website-content-crawler-lite
```

#### Claude Desktop MCP JSON config

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/website-content-crawler-lite"
    }
  }
}
```

#### Example prompts showing MCP usage

- "Use the Apify MCP tool `fetch_cat/website-content-crawler-lite` to crawl `https://docs.apify.com/academy` with 10 pages and summarize the Markdown output."
- "Run Website Content Crawler Lite through MCP and extract titles and H1s from the first 10 pages on this site."
- "Use MCP to find all links discovered from this landing page and group them by domain."

#### Claude Code prompt examples

- "Use Apify MCP to crawl this public documentation section and return a Markdown summary."
- "With the Website Content Crawler Lite MCP tool, extract page titles, H1s, and status codes from this website."

#### Claude Desktop prompt examples

- "Use Website Content Crawler Lite via Apify MCP to collect clean text from this website section."
- "Run a small MCP crawl and prepare a content audit table with URL, title, H1, and status code."

***

### Legality and responsible crawling

This actor is intended for public web pages only.

Do not use it to bypass logins, paywalls, CAPTCHA, private content, or access controls.

Respect website terms, robots rules, copyright, privacy rules, and applicable laws.

Use conservative page limits and crawl only content you have the right to process.

***

### Troubleshooting

#### Why did a page have `skippedReason`?

The page may have been filtered by your globs, disallowed by robots rules, returned an HTTP error, served non-HTML content, or failed before extraction.

#### Why did I get fewer pages than `maxPages`?

The site may not have enough in-scope links, your filters may be strict, or the actor may have skipped pages that are not suitable for extraction.

#### Why is Markdown missing?

Set `outputFormat` to `markdown`. When `outputFormat` is `text` or `html`, the actor focuses on that format.

#### Can it crawl private dashboards?

No. This actor is for public pages. It does not accept credentials or browser sessions.

***

### Limits

- Public HTTP/HTTPS pages only.
- No login or private account access.
- No CAPTCHA bypass.
- No file download extraction in the first version.
- Very JavaScript-heavy pages may return limited text if the content is not present in the public response.

***

### Related scrapers

You may also find these actors useful:

- [Web Page to Markdown Extractor](https://apify.com/fetch_cat/web-page-to-markdown-extractor)
- [Google Search Results Scraper](https://apify.com/fetch_cat/google-search-results-scraper)
- [Google News Scraper](https://apify.com/fetch_cat/google-news-scraper)

***

### FAQ

#### Is this a full website crawler?

It is a lightweight crawler for public website content. It is best for controlled page limits and scoped crawling.

#### Can I crawl multiple domains?

Yes. Add multiple start URLs. With `sameDomainOnly` enabled, each start URL stays on its own domain.

#### Can I crawl only one folder?

Yes. Use `includeGlobs`, for example `https://example.com/docs/**`.

#### Do skipped pages cost the same as extracted pages?

No. The per-page extraction charge is applied only after a successful HTML page extraction.

#### What format should I use for LLMs?

Markdown is usually the best first choice for LLM, RAG, and documentation workflows.

#### What should I do before a large crawl?

Run a small crawl first, review the dataset, then increase `maxPages` gradually.

# Actor input Schema

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

Public HTTP/HTTPS pages where the crawl should start.

## `maxPages` (type: `integer`):

Maximum number of pages to fetch in this run, including skipped pages.

## `maxDepth` (type: `integer`):

How many link levels to follow from each start URL. Use 0 to extract only the start pages.

## `sameDomainOnly` (type: `boolean`):

When enabled, discovered links outside the start URL's domain are reported but not crawled.

## `includeGlobs` (type: `array`):

Optional glob patterns. If set, only URLs matching at least one pattern are crawled. Example: https://example.com/docs/\*\*

## `excludeGlobs` (type: `array`):

Optional glob patterns for URLs to skip. Example: **/login**

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

Choose whether each successful page includes Markdown, plain text only, or cleaned HTML in addition to metadata and links.

## `respectRobotsTxt` (type: `boolean`):

Check robots.txt before crawling a page and skip disallowed URLs.

## `requestTimeoutSecs` (type: `integer`):

Maximum time to wait for a single page response.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://example.com"
    }
  ],
  "maxPages": 5,
  "maxDepth": 1,
  "sameDomainOnly": true,
  "includeGlobs": [],
  "excludeGlobs": [
    "**/login**",
    "**/signup**"
  ],
  "outputFormat": "markdown",
  "respectRobotsTxt": true,
  "requestTimeoutSecs": 20
}
```

# 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://example.com"
        }
    ],
    "maxPages": 5,
    "maxDepth": 1,
    "requestTimeoutSecs": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/website-content-crawler-lite").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://example.com" }],
    "maxPages": 5,
    "maxDepth": 1,
    "requestTimeoutSecs": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/website-content-crawler-lite").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://example.com"
    }
  ],
  "maxPages": 5,
  "maxDepth": 1,
  "requestTimeoutSecs": 20
}' |
apify call fetch_cat/website-content-crawler-lite --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fetch_cat/website-content-crawler-lite",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Website Content Crawler Lite",
        "description": "Crawl public website pages and extract clean text, Markdown, metadata, and links for AI, SEO, and monitoring workflows.",
        "version": "0.1",
        "x-build-id": "1bMtNs1Vnh58Bz0In"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fetch_cat~website-content-crawler-lite/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fetch_cat-website-content-crawler-lite",
                "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/fetch_cat~website-content-crawler-lite/runs": {
            "post": {
                "operationId": "runs-sync-fetch_cat-website-content-crawler-lite",
                "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/fetch_cat~website-content-crawler-lite/run-sync": {
            "post": {
                "operationId": "run-sync-fetch_cat-website-content-crawler-lite",
                "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 HTTP/HTTPS pages where the crawl should start.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxPages": {
                        "title": "📄 Maximum pages",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of pages to fetch in this run, including skipped pages.",
                        "default": 10
                    },
                    "maxDepth": {
                        "title": "🔗 Maximum link depth",
                        "minimum": 0,
                        "maximum": 25,
                        "type": "integer",
                        "description": "How many link levels to follow from each start URL. Use 0 to extract only the start pages.",
                        "default": 1
                    },
                    "sameDomainOnly": {
                        "title": "Stay on the same domain",
                        "type": "boolean",
                        "description": "When enabled, discovered links outside the start URL's domain are reported but not crawled.",
                        "default": true
                    },
                    "includeGlobs": {
                        "title": "Include URL globs",
                        "type": "array",
                        "description": "Optional glob patterns. If set, only URLs matching at least one pattern are crawled. Example: https://example.com/docs/**",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "excludeGlobs": {
                        "title": "Exclude URL globs",
                        "type": "array",
                        "description": "Optional glob patterns for URLs to skip. Example: **/login**",
                        "default": [
                            "**/login**",
                            "**/signup**"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "outputFormat": {
                        "title": "Main content format",
                        "enum": [
                            "markdown",
                            "text",
                            "html"
                        ],
                        "type": "string",
                        "description": "Choose whether each successful page includes Markdown, plain text only, or cleaned HTML in addition to metadata and links.",
                        "default": "markdown"
                    },
                    "respectRobotsTxt": {
                        "title": "Respect robots.txt",
                        "type": "boolean",
                        "description": "Check robots.txt before crawling a page and skip disallowed URLs.",
                        "default": true
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Maximum time to wait for a single page response.",
                        "default": 20
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
