# RAG Web Browser (`crawlerbros/rag-web-browser`) Actor

Search the web or fetch direct URLs and return clean markdown for LLM/RAG pipelines. filters: domainAllowlist/Blocklist, minTextLength, keywordsAnyOf. No login, no cookies.

- **URL**: https://apify.com/crawlerbros/rag-web-browser.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** AI, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 6 bookmarks
- **User rating**: 5.00 out of 5 stars

## 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

## RAG Web Browser

Search the web (or fetch direct URLs) and return clean markdown ready for LLM/RAG pipelines. HTTP-first with `chrome131` TLS impersonation; Playwright fallback when needed. Pro filters narrow the result set to exactly what your retrieval index needs.

### What this actor does

- Sends a query to Google → extracts top organic results → fetches each → cleans HTML → emits structured records
- Or fetches direct URLs (`startUrls`) and skips Google entirely
- Strips boilerplate (nav, footer, ads, scripts) before extracting the main article
- Outputs `markdown` (default), plain `text`, and/or raw `html` per page
- Returns one clean record per page with title, description, language, word count, reading time

### Output per page

- `url`, `loadedUrl`, `domain`
- `title`, `description`, `languageCode`
- `text` (plain text) — when requested
- `markdown` (LLM-ready) — when requested
- `html` (raw cleaned HTML) — when requested
- `wordCount`, `readingTimeMinutes` (220 wpm)
- `httpStatusCode`, `loadedTime` (seconds)
- `searchRank` (1-based — when the URL came from Google search)
- `recordType: "page"`, `scrapedAt`

Empty fields are omitted from the output (no nulls).

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `query` | string | `"what is retrieval augmented generation"` | Search query OR a single URL |
| `startUrls` | array | `[]` | Direct URLs to fetch (skips Google search) |
| `maxResults` | int | `3` | Number of top organic Google results to fetch (1–100) |
| `outputFormats` | array | `["markdown"]` | Any combination of `markdown`, `text`, `html` |
| `requestTimeoutSecs` | int | `40` | Per-page HTTP timeout (1–300s) |
| `scrapingTool` | enum | `raw-http` | `raw-http` (curl_cffi) or `browser-playwright` |
| `removeElementsCssSelector` | string | nav/footer/aside/script/... | CSS selector(s) to strip before extraction |
| `htmlTransformer` | enum | `readable-text` | `readable-text` (main article) or `none` |
| `desiredConcurrency` | int | `5` | Parallel fetches (0 = auto) |
| `maxRequestRetries` | int | `2` | Retries on transient HTTP failures |
| `dynamicContentWaitSecs` | int | `5` | Wait time for JS content (browser mode only) |
| `removeCookieWarnings` | bool | `true` | Dismiss cookie/consent dialogs (browser mode) |
| `useApifyProxy` | bool | `true` | Route requests through Apify proxy |
| `domainAllowlist` | array | `[]` | Only emit pages whose host contains one of these substrings |
| `domainBlocklist` | array | `[]` | Drop pages whose host contains one of these substrings |
| `minTextLength` | int | – | Drop pages with fewer than N characters of extracted text |
| `excludeContentSelectors` | array | `[]` | Additional CSS selectors to strip |
| `keywordsAnyOf` | array | `[]` | Only emit pages containing at least one of these keywords |

#### Example: search query

```json
{
  "query": "best vector database for RAG 2024",
  "maxResults": 5,
  "outputFormats": ["markdown"],
  "minTextLength": 500,
  "domainBlocklist": ["pinterest.com", "youtube.com"]
}
````

#### Example: direct URLs

```json
{
  "startUrls": [
    "https://en.wikipedia.org/wiki/Retrieval-augmented_generation",
    "https://docs.langchain.com/docs/use-cases/qa/"
  ],
  "outputFormats": ["markdown", "text"],
  "htmlTransformer": "readable-text"
}
```

#### Example: filter for relevance

```json
{
  "query": "vector embeddings tutorial",
  "maxResults": 10,
  "keywordsAnyOf": ["embedding", "vector", "similarity"],
  "minTextLength": 1000,
  "outputFormats": ["markdown"]
}
```

### Use cases

- **RAG ingestion** — pull fresh top-N Google results for a topic, hand markdown to your embedder
- **News briefings** — daily query like "AI news today", filter by `minTextLength` to drop SEO thin pages
- **Competitive monitoring** — `domainAllowlist` of competitor domains, scrape their blogs weekly
- **Reference enrichment** — feed each citation URL from a paper into the actor for clean text extraction
- **LLM context** — give an LLM the cleaned markdown of pages, not raw HTML, to save tokens

### FAQ

**Does it require a login or cookies?**  No. All fetches are anonymous.

**Is a proxy needed?**  Apify proxy is enabled by default to avoid Google rate-limits and unblock some target sites. You can disable it with `useApifyProxy: false`.

**What's the difference between `raw-http` and `browser-playwright`?**  Raw HTTP uses curl\_cffi with chrome131 TLS impersonation — fast and works on ~80% of sites. Browser mode runs headless Chromium, waits for JS, and dismisses cookie banners — slower but handles SPAs.

**Why is `description` missing on some pages?**  Some pages don't expose a `<meta name="description">` or `og:description`. The omit-empty contract drops missing fields rather than emit nulls.

**Why does `markdown` look stripped down?**  We intentionally output simple markdown (headings, lists, links, emphasis, code) — RAG embedders strip most formatting anyway, and simpler markdown reduces token bloat.

**What if all my filters reject every result?**  The actor finishes cleanly with a status message instead of pushing placeholder rows.

**How do I use this with my LLM/RAG pipeline?**  Trigger this actor from your indexing job, read the dataset (each record has `url` + `markdown`), embed the markdown, store in your vector DB.

# Actor input Schema

## `query` (type: `string`):

Free-text search query OR a single URL. When `startUrls` is also set, both are processed.

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

Direct URLs to fetch. When set, the actor skips Google search and fetches each URL directly.

## `maxResults` (type: `integer`):

When `query` is a search term, how many top organic results to fetch.

## `outputFormats` (type: `array`):

Which textual representations to include per page. Combine any of `markdown`, `text`, `html`.

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

Per-page HTTP timeout.

## `scrapingTool` (type: `string`):

`raw-http` is fast (curl\_cffi with chrome131 impersonation). `browser-playwright` runs a headless browser for JS-heavy pages.

## `removeElementsCssSelector` (type: `string`):

CSS selector matching elements to remove before extraction (e.g. `nav, footer, aside, .ad`). One comma-separated string.

## `htmlTransformer` (type: `string`):

`none` keeps full HTML; `readable-text` extracts the main article text (best for blog posts, news).

## `desiredConcurrency` (type: `integer`):

How many URLs to fetch in parallel. Set 0 for auto.

## `maxRequestRetries` (type: `integer`):

Retries on transient HTTP failures (429/5xx).

## `dynamicContentWaitSecs` (type: `integer`):

When `scrapingTool=browser-playwright`, how long to wait for JS-loaded content.

## `removeCookieWarnings` (type: `boolean`):

When true, dismisses common cookie/consent dialogs in browser mode.

## `useApifyProxy` (type: `boolean`):

Route requests through Apify proxy. Recommended for Google search and some target sites.

## `domainAllowlist` (type: `array`):

Only emit pages whose host contains one of these substrings (case-insensitive).

## `domainBlocklist` (type: `array`):

Drop pages whose host contains one of these substrings.

## `minTextLength` (type: `integer`):

Drop pages with fewer than N characters of extracted text. Filters out thin / parking-page results.

## `excludeContentSelectors` (type: `array`):

Additional CSS selectors to strip — extends `removeElementsCssSelector`.

## `keywordsAnyOf` (type: `array`):

Only emit pages whose extracted text contains at least one of these keywords (case-insensitive).

## Actor input object example

```json
{
  "query": "what is retrieval augmented generation",
  "startUrls": [],
  "maxResults": 3,
  "outputFormats": [
    "markdown"
  ],
  "requestTimeoutSecs": 40,
  "scrapingTool": "raw-http",
  "removeElementsCssSelector": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='true']",
  "htmlTransformer": "readable-text",
  "desiredConcurrency": 5,
  "maxRequestRetries": 2,
  "dynamicContentWaitSecs": 5,
  "removeCookieWarnings": true,
  "useApifyProxy": true,
  "domainAllowlist": [],
  "domainBlocklist": [],
  "excludeContentSelectors": [],
  "keywordsAnyOf": []
}
```

# 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 = {
    "query": "what is retrieval augmented generation",
    "startUrls": [],
    "maxResults": 3,
    "outputFormats": [
        "markdown"
    ],
    "requestTimeoutSecs": 40,
    "scrapingTool": "raw-http",
    "removeElementsCssSelector": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='true']",
    "htmlTransformer": "readable-text",
    "desiredConcurrency": 5,
    "maxRequestRetries": 2,
    "dynamicContentWaitSecs": 5,
    "removeCookieWarnings": true,
    "useApifyProxy": true,
    "domainAllowlist": [],
    "domainBlocklist": [],
    "excludeContentSelectors": [],
    "keywordsAnyOf": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/rag-web-browser").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 = {
    "query": "what is retrieval augmented generation",
    "startUrls": [],
    "maxResults": 3,
    "outputFormats": ["markdown"],
    "requestTimeoutSecs": 40,
    "scrapingTool": "raw-http",
    "removeElementsCssSelector": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='true']",
    "htmlTransformer": "readable-text",
    "desiredConcurrency": 5,
    "maxRequestRetries": 2,
    "dynamicContentWaitSecs": 5,
    "removeCookieWarnings": True,
    "useApifyProxy": True,
    "domainAllowlist": [],
    "domainBlocklist": [],
    "excludeContentSelectors": [],
    "keywordsAnyOf": [],
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/rag-web-browser").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 '{
  "query": "what is retrieval augmented generation",
  "startUrls": [],
  "maxResults": 3,
  "outputFormats": [
    "markdown"
  ],
  "requestTimeoutSecs": 40,
  "scrapingTool": "raw-http",
  "removeElementsCssSelector": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='\''true'\'']",
  "htmlTransformer": "readable-text",
  "desiredConcurrency": 5,
  "maxRequestRetries": 2,
  "dynamicContentWaitSecs": 5,
  "removeCookieWarnings": true,
  "useApifyProxy": true,
  "domainAllowlist": [],
  "domainBlocklist": [],
  "excludeContentSelectors": [],
  "keywordsAnyOf": []
}' |
apify call crawlerbros/rag-web-browser --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "RAG Web Browser",
        "description": "Search the web or fetch direct URLs and return clean markdown for LLM/RAG pipelines. filters: domainAllowlist/Blocklist, minTextLength, keywordsAnyOf. No login, no cookies.",
        "version": "1.0",
        "x-build-id": "OjRc7qyvqfcBdd4z4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~rag-web-browser/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-rag-web-browser",
                "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/crawlerbros~rag-web-browser/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-rag-web-browser",
                "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/crawlerbros~rag-web-browser/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-rag-web-browser",
                "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",
                "properties": {
                    "query": {
                        "title": "Search query (or URL)",
                        "type": "string",
                        "description": "Free-text search query OR a single URL. When `startUrls` is also set, both are processed.",
                        "default": "what is retrieval augmented generation"
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Direct URLs to fetch. When set, the actor skips Google search and fetches each URL directly.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max search results",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "When `query` is a search term, how many top organic results to fetch.",
                        "default": 3
                    },
                    "outputFormats": {
                        "title": "Output formats",
                        "type": "array",
                        "description": "Which textual representations to include per page. Combine any of `markdown`, `text`, `html`.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "markdown",
                                "text",
                                "html"
                            ],
                            "enumTitles": [
                                "Markdown",
                                "Plain text",
                                "HTML"
                            ]
                        },
                        "default": [
                            "markdown"
                        ]
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 1,
                        "maximum": 300,
                        "type": "integer",
                        "description": "Per-page HTTP timeout.",
                        "default": 40
                    },
                    "scrapingTool": {
                        "title": "Scraping tool",
                        "enum": [
                            "raw-http",
                            "browser-playwright"
                        ],
                        "type": "string",
                        "description": "`raw-http` is fast (curl_cffi with chrome131 impersonation). `browser-playwright` runs a headless browser for JS-heavy pages.",
                        "default": "raw-http"
                    },
                    "removeElementsCssSelector": {
                        "title": "Strip elements (CSS selector)",
                        "type": "string",
                        "description": "CSS selector matching elements to remove before extraction (e.g. `nav, footer, aside, .ad`). One comma-separated string.",
                        "default": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='true']"
                    },
                    "htmlTransformer": {
                        "title": "HTML transformer",
                        "enum": [
                            "none",
                            "readable-text"
                        ],
                        "type": "string",
                        "description": "`none` keeps full HTML; `readable-text` extracts the main article text (best for blog posts, news).",
                        "default": "readable-text"
                    },
                    "desiredConcurrency": {
                        "title": "Desired concurrency",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "How many URLs to fetch in parallel. Set 0 for auto.",
                        "default": 5
                    },
                    "maxRequestRetries": {
                        "title": "Max retries per URL",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Retries on transient HTTP failures (429/5xx).",
                        "default": 2
                    },
                    "dynamicContentWaitSecs": {
                        "title": "Dynamic content wait (seconds)",
                        "minimum": 0,
                        "maximum": 60,
                        "type": "integer",
                        "description": "When `scrapingTool=browser-playwright`, how long to wait for JS-loaded content.",
                        "default": 5
                    },
                    "removeCookieWarnings": {
                        "title": "Remove cookie warnings",
                        "type": "boolean",
                        "description": "When true, dismisses common cookie/consent dialogs in browser mode.",
                        "default": true
                    },
                    "useApifyProxy": {
                        "title": "Use Apify proxy",
                        "type": "boolean",
                        "description": "Route requests through Apify proxy. Recommended for Google search and some target sites.",
                        "default": true
                    },
                    "domainAllowlist": {
                        "title": "Domain allowlist",
                        "type": "array",
                        "description": "Only emit pages whose host contains one of these substrings (case-insensitive).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "domainBlocklist": {
                        "title": "Domain blocklist",
                        "type": "array",
                        "description": "Drop pages whose host contains one of these substrings.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "minTextLength": {
                        "title": "Min text length",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Drop pages with fewer than N characters of extracted text. Filters out thin / parking-page results."
                    },
                    "excludeContentSelectors": {
                        "title": "Exclude content selectors",
                        "type": "array",
                        "description": "Additional CSS selectors to strip — extends `removeElementsCssSelector`.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "keywordsAnyOf": {
                        "title": "Must contain (any-of)",
                        "type": "array",
                        "description": "Only emit pages whose extracted text contains at least one of these keywords (case-insensitive).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
