# Google Search Results Scraper — Cheaper SERP API (`prodiger/google-search-scraper`) Actor

Scrape Google Search result pages by query or URL. Extract organic results, related searches, People Also Ask, best-effort ads, and HTML snapshots. Slightly cheaper pay-per-event pricing than Apify's Google Search Results Scraper.

- **URL**: https://apify.com/prodiger/google-search-scraper.md
- **Developed by:** [Arnas](https://apify.com/prodiger) (community)
- **Categories:** SEO tools, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## Google Search Results Scraper — Cheaper SERP API

Scrape Google Search result pages by keyword or by a pasted Google Search URL. The actor returns one dataset record per SERP page with organic results, related queries, People Also Ask, best-effort paid ads/product ads, result counts, pagination metadata, and optional raw HTML snapshots.

It is designed as a cheaper, simpler alternative to `apify/google-search-scraper` for the common SEO and market research workflow: "give me Google SERP pages and the links on them." AI search add-ons and lead enrichment are intentionally out of scope so the per-page price can stay lower and predictable.

### Why use this actor

- **A little cheaper** — $4.20 per 1,000 scraped SERP pages before Apify subscription discounts, compared with Apify's current $4.50 per 1,000 Free-plan page price.
- **No paid-ads add-on fee** — best-effort ad extraction is included in the page event price.
- **Google URL or keyword input** — paste raw search terms or full `google.com/search?...` URLs.
- **Advanced search filters** — country, interface language, result language, exact-match, site/related filters, title/text/URL words, file types, and date filters.
- **Debuggable output** — optionally save raw HTML in the dataset or key-value store for parser inspection.
- **Compatible page-level shape** — one dataset item per SERP page with `searchQuery`, `organicResults`, `paidResults`, `paidProducts`, `relatedQueries`, and `peopleAlsoAsk`.

### Pricing

This actor uses Apify Pay-Per-Event pricing.

| Event | Price |
|---|---:|
| Actor start | $0.001 per run |
| Scraped SERP page | $0.0042 per successful Google results page |

Examples before subscription discounts:

| Workload | Cost |
|---|---:|
| 10 SERP pages | $0.043 |
| 1,000 SERP pages | $4.201 |
| 10,000 SERP pages | $42.001 |

Failed or blocked pages emit an error record but are not charged as scraped SERP pages.

### Input

```json
{
  "queries": "best SEO tools\nsite:apify.com google search scraper",
  "maxPagesPerQuery": 2,
  "resultsPerPage": 10,
  "countryCode": "us",
  "languageCode": "en",
  "mobileResults": false,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["GOOGLE_SERP"]
  }
}
````

`queries` accepts one item per line. Each item can be either a normal Google query or a full Google Search URL such as:

```text
https://www.google.com/search?q=hotels+in+Seattle&num=10
```

The default proxy group is `GOOGLE_SERP`, Apify's dedicated Google Search proxy. Keep it enabled for production runs. Residential proxy fallback can work for some cases, but it is more likely to return Google's JavaScript challenge or CAPTCHA.

### Output

Each dataset item represents one SERP page:

```json
{
  "searchQuery": {
    "term": "best SEO tools",
    "url": "http://www.google.com/search?q=best+SEO+tools&num=10&start=0&hl=en&gl=us&pws=0",
    "device": "DESKTOP",
    "page": 1,
    "type": "SEARCH",
    "domain": "google.com",
    "countryCode": "US",
    "languageCode": "en",
    "locationUule": null,
    "resultsPerPage": 10
  },
  "url": "http://www.google.com/search?q=best+SEO+tools&num=10&start=0&hl=en&gl=us&pws=0",
  "hasNextPage": true,
  "serpProviderCode": "google.com",
  "resultsTotal": "About 1,230,000 results",
  "organicResults": [
    {
      "title": "Example result",
      "url": "https://example.com/",
      "displayedUrl": "example.com",
      "description": "Result snippet from Google.",
      "emphasizedKeywords": ["SEO tools"],
      "siteLinks": [],
      "productInfo": {},
      "type": "organic",
      "position": 1
    }
  ],
  "paidResults": [],
  "paidProducts": [],
  "relatedQueries": [],
  "peopleAlsoAsk": [],
  "suggestedResults": [],
  "customData": null,
  "aiOverview": "not-found",
  "#error": false
}
```

If Google returns a block page or a request fails after retries, the actor emits a page-level error record with `#error: true` and debug details. Error records are not charged as scraped pages.

### Notes and limitations

Google changes SERP markup frequently. This actor uses static HTML parsing for speed and price. It is best for organic/link extraction and lightweight ad monitoring. It does not provide bundled AI Mode, Perplexity, ChatGPT, Copilot, Gemini, lead enrichment, or email verification add-ons.

For large runs, lower `maxConcurrency` if error records increase. For strict quality validation, enable `saveHtmlToKeyValueStore` and compare parsed fields against the original HTML snapshots.

### Legal

Scrape only public data you have a legitimate reason to process. Google Search results can include personal data, snippets from copyrighted pages, and region-specific content. Follow applicable laws, Google terms, and privacy rules such as GDPR.

# Actor input Schema

## `queries` (type: `string`):

One search query or Google Search URL per line. Advanced Google operators are supported directly in each query.

## `maxPagesPerQuery` (type: `integer`):

Maximum number of Google result pages to scrape for each query.

## `resultsPerPage` (type: `integer`):

Number of results requested from Google per SERP page.

## `countryCode` (type: `string`):

Country used for Google domain and the gl search parameter.

## `languageCode` (type: `string`):

Google interface language passed as the hl parameter.

## `searchLanguage` (type: `string`):

Restrict results to a language using Google's lr=lang\_ parameter. Leave empty for no restriction.

## `locationUule` (type: `string`):

Optional Google UULE location parameter for local SERPs.

## `forceExactMatch` (type: `boolean`):

Wrap each plain text query in quotes before applying other filters.

## `site` (type: `string`):

Limit results to a specific site, for example example.com.

## `relatedToSite` (type: `string`):

Find pages related to a specific site. Ignored when Site filter is set.

## `wordsInTitle` (type: `array`):

Adds intitle: filters to plain text queries.

## `wordsInText` (type: `array`):

Adds intext: filters to plain text queries.

## `wordsInUrl` (type: `array`):

Adds inurl: filters to plain text queries.

## `fileTypes` (type: `array`):

Adds filetype: filters. Multiple values are combined with OR.

## `quickDateRange` (type: `string`):

Google qdr value, such as d7, m6, or y1.

## `beforeDate` (type: `string`):

Filter results before this date. Use YYYY-MM-DD.

## `afterDate` (type: `string`):

Filter results after this date. Use YYYY-MM-DD.

## `mobileResults` (type: `boolean`):

Use a mobile user agent and mark output query metadata as MOBILE.

## `includeUnfilteredResults` (type: `boolean`):

Pass filter=0 to Google to include lower-quality omitted results.

## `focusOnPaidAds` (type: `boolean`):

Best-effort paid ad extraction. Unlike Apify's reference actor, this actor does not add a separate ads extraction charge.

## `saveHtml` (type: `boolean`):

Include raw SERP HTML in dataset records.

## `saveHtmlToKeyValueStore` (type: `boolean`):

Save raw SERP HTML to the default key-value store and include htmlSnapshotUrl in dataset records.

## `renderJavascriptOnBlock` (type: `boolean`):

If static HTML fetch receives Google's JavaScript interstitial, retry the page in a headless browser. This is slower but improves success rate.

## `maxConcurrency` (type: `integer`):

Maximum parallel SERP requests.

## `requestRetries` (type: `integer`):

Retries per SERP page before an error record is emitted.

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

Apify Proxy or custom proxy configuration. Residential proxies are strongly recommended for Google.

## Actor input object example

```json
{
  "queries": "best SEO tools\nsite:apify.com google search scraper",
  "maxPagesPerQuery": 1,
  "resultsPerPage": 10,
  "countryCode": "us",
  "languageCode": "en",
  "forceExactMatch": false,
  "wordsInTitle": [],
  "wordsInText": [],
  "wordsInUrl": [],
  "fileTypes": [],
  "mobileResults": false,
  "includeUnfilteredResults": false,
  "focusOnPaidAds": true,
  "saveHtml": false,
  "saveHtmlToKeyValueStore": false,
  "renderJavascriptOnBlock": true,
  "maxConcurrency": 5,
  "requestRetries": 2,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Scraped Google Search result pages.

# 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 = {
    "queries": `best SEO tools
site:apify.com google search scraper`,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "GOOGLE_SERP"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("prodiger/google-search-scraper").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 = {
    "queries": """best SEO tools
site:apify.com google search scraper""",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["GOOGLE_SERP"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("prodiger/google-search-scraper").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 '{
  "queries": "best SEO tools\\nsite:apify.com google search scraper",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}' |
apify call prodiger/google-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=prodiger/google-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Search Results Scraper — Cheaper SERP API",
        "description": "Scrape Google Search result pages by query or URL. Extract organic results, related searches, People Also Ask, best-effort ads, and HTML snapshots. Slightly cheaper pay-per-event pricing than Apify's Google Search Results Scraper.",
        "version": "0.1",
        "x-build-id": "iy96tleCzM4RjKBgF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/prodiger~google-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-prodiger-google-search-scraper",
                "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/prodiger~google-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-prodiger-google-search-scraper",
                "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/prodiger~google-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-prodiger-google-search-scraper",
                "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": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "Search terms or Google Search URLs",
                        "type": "string",
                        "description": "One search query or Google Search URL per line. Advanced Google operators are supported directly in each query."
                    },
                    "maxPagesPerQuery": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum number of Google result pages to scrape for each query.",
                        "default": 1
                    },
                    "resultsPerPage": {
                        "title": "Results per page",
                        "minimum": 10,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Number of results requested from Google per SERP page.",
                        "default": 10
                    },
                    "countryCode": {
                        "title": "Country",
                        "type": "string",
                        "description": "Country used for Google domain and the gl search parameter.",
                        "default": "us"
                    },
                    "languageCode": {
                        "title": "Interface language",
                        "type": "string",
                        "description": "Google interface language passed as the hl parameter.",
                        "default": "en"
                    },
                    "searchLanguage": {
                        "title": "Search result language",
                        "type": "string",
                        "description": "Restrict results to a language using Google's lr=lang_ parameter. Leave empty for no restriction."
                    },
                    "locationUule": {
                        "title": "Exact location UULE",
                        "type": "string",
                        "description": "Optional Google UULE location parameter for local SERPs."
                    },
                    "forceExactMatch": {
                        "title": "Force exact match",
                        "type": "boolean",
                        "description": "Wrap each plain text query in quotes before applying other filters.",
                        "default": false
                    },
                    "site": {
                        "title": "Site filter",
                        "type": "string",
                        "description": "Limit results to a specific site, for example example.com."
                    },
                    "relatedToSite": {
                        "title": "Related site filter",
                        "type": "string",
                        "description": "Find pages related to a specific site. Ignored when Site filter is set."
                    },
                    "wordsInTitle": {
                        "title": "Words in title",
                        "type": "array",
                        "description": "Adds intitle: filters to plain text queries.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "wordsInText": {
                        "title": "Words in text",
                        "type": "array",
                        "description": "Adds intext: filters to plain text queries.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "wordsInUrl": {
                        "title": "Words in URL",
                        "type": "array",
                        "description": "Adds inurl: filters to plain text queries.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "fileTypes": {
                        "title": "File types",
                        "type": "array",
                        "description": "Adds filetype: filters. Multiple values are combined with OR.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "quickDateRange": {
                        "title": "Quick date range",
                        "type": "string",
                        "description": "Google qdr value, such as d7, m6, or y1."
                    },
                    "beforeDate": {
                        "title": "Before date",
                        "type": "string",
                        "description": "Filter results before this date. Use YYYY-MM-DD."
                    },
                    "afterDate": {
                        "title": "After date",
                        "type": "string",
                        "description": "Filter results after this date. Use YYYY-MM-DD."
                    },
                    "mobileResults": {
                        "title": "Mobile results",
                        "type": "boolean",
                        "description": "Use a mobile user agent and mark output query metadata as MOBILE.",
                        "default": false
                    },
                    "includeUnfilteredResults": {
                        "title": "Unfiltered results",
                        "type": "boolean",
                        "description": "Pass filter=0 to Google to include lower-quality omitted results.",
                        "default": false
                    },
                    "focusOnPaidAds": {
                        "title": "Try extracting paid ads",
                        "type": "boolean",
                        "description": "Best-effort paid ad extraction. Unlike Apify's reference actor, this actor does not add a separate ads extraction charge.",
                        "default": true
                    },
                    "saveHtml": {
                        "title": "Save HTML to dataset",
                        "type": "boolean",
                        "description": "Include raw SERP HTML in dataset records.",
                        "default": false
                    },
                    "saveHtmlToKeyValueStore": {
                        "title": "Save HTML to key-value store",
                        "type": "boolean",
                        "description": "Save raw SERP HTML to the default key-value store and include htmlSnapshotUrl in dataset records.",
                        "default": false
                    },
                    "renderJavascriptOnBlock": {
                        "title": "Render JavaScript when blocked",
                        "type": "boolean",
                        "description": "If static HTML fetch receives Google's JavaScript interstitial, retry the page in a headless browser. This is slower but improves success rate.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum parallel SERP requests.",
                        "default": 5
                    },
                    "requestRetries": {
                        "title": "Request retries",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Retries per SERP page before an error record is emitted.",
                        "default": 2
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy or custom proxy configuration. Residential proxies are strongly recommended for Google."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
