# Google Search Scraper — Bing, Brave & DuckDuckGo (`chronometrica/google-search-scraper`) Actor

Scrape Google, Bing, Brave, and DuckDuckGo search results. Export each engine result with its exact query, rank, URL, title, and snippet.

- **URL**: https://apify.com/chronometrica/google-search-scraper.md
- **Developed by:** [Chronometrica](https://apify.com/chronometrica) (community)
- **Categories:** SEO tools, News, Agents
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.75 / 1,000 search results

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Scraper — Bing, Brave & DuckDuckGo

### 🏠 What does Google Search Scraper do?

Google Search Scraper collects public results from Google, Bing, Brave, and
DuckDuckGo. Google works on its own. You can add other engines when you want
more coverage or want to compare ranks.

The main output is a search result observation. Each row tells you:

- ⚙️ which exact query the Actor ran;
- 🧭 which search engine returned the result;
- 🏅 where the supported result block appeared;
- 🔗 which public URL was found;
- 📝 its title and any snippet the engine showed.

One engine result is one row. Results are not merged across engines. If Google
returns 10 results and DuckDuckGo returns 10 results, the dataset can contain
20 rows. If both engines find the same URL, both rows stay in the dataset.

Use the Actor for SEO checks, brand tracking, competitor research, site search,
public mention discovery, lead research, scheduled alerts, AI tools, and RAG.

### 🔎 What can it search?

Each query runs exactly as entered. You can use normal text, quoted phrases,
`site:`, `intitle:`, `filetype:`, exclusions, and other operators supported by
the selected search engine.

### 🧭 Supported search engines

| Engine        | Web search |
| ------------- | ---------- |
| 🔵 Google     | Yes        |
| 🟦 Bing       | Yes        |
| 🦁 Brave      | Yes        |
| 🦆 DuckDuckGo | Yes        |

Each engine runs as its own search. If one engine fails, useful rows from other
engines can still be saved. The run summary shows what happened.

### 📦 What data can I extract?

The dataset grain is:

`one run + one engine + one executed query + one page + one result position`

| Data group          | Fields                                             |
| ------------------- | -------------------------------------------------- |
| 🏠 Run              | `runId`                                            |
| 🔎 Search request   | `country`, `language`, `safeSearch`                |
| ⚙️ Search execution | `engine`, `executedQuery`                          |
| 🏅 Position         | `page`, `rankOnPage`, `rank`                       |
| 🔗 Result           | `title`, `canonicalUrl`, `resultDomain`, `snippet` |
| 📣 Sponsored result | `isSponsored`, `advertiserDomain`                  |
| 🕐 Observation      | `observedAt`, `schemaVersion`                      |

Missing public values stay `null`. They are not guessed.

#### What does `executedQuery` mean?

`executedQuery` is the exact query one engine received. Search operators remain
part of this value, so every row keeps its own query and engine origin.

### 🚀 Quick start

1. Open the Actor in Apify Console.
2. Enter one or more queries.
3. Pick Google or add more engines.
4. Start with 10 results.
5. Click **Start**.
6. Open **Output** to view or export the rows.

#### 🌐 Small Google search

```json
{
  "queries": ["machine learning tutorials"],
  "engines": ["google"],
  "maxResultsPerExecutedQuery": 10,
  "country": "US",
  "language": "en",
  "safeSearch": true,
  "includeSponsoredResults": false
}
````

#### 🧭 Compare Google and DuckDuckGo

```json
{
  "queries": ["best web scraping tools"],
  "engines": ["google", "duckduckgo"],
  "maxResultsPerExecutedQuery": 10
}
```

This input can save up to 20 rows: 10 from Google and 10 from DuckDuckGo.

#### 🎯 Search selected sites with `site:`

```json
{
  "queries": ["site:apify.com web scraping", "site:github.com web scraping"],
  "engines": ["google", "duckduckgo"],
  "maxResultsPerExecutedQuery": 25
}
```

Each operator query runs separately. Search engines decide which results match
their supported operators.

### ⚙️ Input settings

| Setting                      | What it controls                                                                            |
| ---------------------------- | ------------------------------------------------------------------------------------------- |
| `queries`                    | 1 to 100 original queries.                                                                  |
| `engines`                    | Search engines to run. Google is selected by default.                                       |
| `maxResultsPerExecutedQuery` | 1 to 100 saved rows for each engine and exact executed query. Default: `10`.                |
| `country`                    | Localizes results. Choose one of 249 ISO countries and territories. Default: United States. |
| `language`                   | Search language such as `en`, `fr`, `de`, or `ja`. Default: `en`.                           |
| `safeSearch`                 | Asks supported engines to filter explicit results. Default: `true`.                         |
| `includeSponsoredResults`    | Keeps detected paid results when on. Default: `false`.                                      |

#### How many rows can a run save?

The cap applies to every executed query on every engine.

For one web query, two engines, and a cap of 10:

`1 query × 2 engines × 10 results = up to 20 rows`

The run summary shows `searchesCompiled`, `executionsPlanned`, and saved row
counts by query and engine.

#### How does country change the results?

Country can change ranks, local sites, ads, and which results appear. The same
chosen country is requested from every engine and saved in every row. Country
targeting is a preference, not a promise; source availability can vary.

### 📣 Sponsored results

Sponsored results are removed by default. Turn on
`includeSponsoredResults` only when ads are useful to your research.

Each kept paid result has:

- `isSponsored: true`
- `advertiserDomain`: the detected advertiser domain, when shown

Because rows are not merged, an organic Google result and a paid DuckDuckGo
result remain two clear observations.

### ⬆️ Output example

```json
{
  "runId": "abc123",
  "country": "US",
  "language": "en",
  "safeSearch": true,
  "engine": "google",
  "executedQuery": "best web scraping tools",
  "page": 1,
  "rankOnPage": 3,
  "rank": 3,
  "title": "A guide to web scraping tools",
  "canonicalUrl": "https://example.com/web-scraping-tools",
  "resultDomain": "example.com",
  "snippet": "Search-engine snippet",
  "isSponsored": false,
  "advertiserDomain": null,
  "observedAt": "2026-07-17T12:00:00.000Z",
  "schemaVersion": "7.0"
}
```

You can export the dataset as JSON, JSONL, CSV, Excel, XML, RSS, or HTML. You
can also use the Apify API, SDKs, webhooks, schedules, Make, Zapier, or n8n.

#### 🔁 Repeated runs and schedules

Each Actor run receives its own dataset. Running the same query again creates
new observations with a new `runId` and `observedAt`. Rows are not silently
updated across runs. Use `engine`, `executedQuery`, `canonicalUrl`, and
`observedAt` when comparing rank observations over time.

### 📌 Run summary

`OUTPUT` and `RUN_SUMMARY` report:

- 🔎 queries, compiled searches, and planned engine executions;
- 📄 pages attempted and parsed;
- 📦 rows saved by original query and by engine;
- 🚫 invalid URLs removed;
- 📣 sponsored candidates seen, removed, and saved;
- 🧭 status counts for every engine;
- 🏁 the final stop reason.

### 💵 Pricing event and cost controls

The Actor uses pay-per-result pricing. One `search-result` event means one row
saved for one engine and one executed query. The current price is shown in
Apify Console before a run.

Use `maxResultsPerExecutedQuery`, the number of queries, and the number of
selected engines to control the maximum row count. Start with one engine and
10 results. Add more only when the small run proves useful.

### 🧪 Test evidence

Version 1.0 focuses on simple web queries through Google, Bing, Brave, and
DuckDuckGo. Release checks cover input rules, row grain, URL safety,
sponsored-result filtering, pagination, countries, engine failures, billing,
and the public output contract.

Search results, blocks, runtime, and cost change by query, country, language,
engine state, and Apify rates. Test records are evidence, not promises.

### 🔒 Public-data boundary

The Actor reads public, logged-out search results.

It does not:

- 🔐 log in to search accounts;
- 🍪 use customer cookies or copied sessions;
- 🧩 solve CAPTCHAs or other access challenges;
- ✅ promise complete coverage of the web.

### ⚠️ Limits

- Search indexes change often.
- Results and ranks vary by engine, time, place, and language.
- An engine can block, rate-limit, repeat, or stop on deeper pages.
- The Actor can return fewer rows than the cap after checks and filtering.
- A URL can appear more than once by design when engines or executed queries differ.
- Snippets can be missing or stale.

Use `runId`, `engine`, `executedQuery`, `page`, and `rankOnPage` to identify and
audit each row.

### ❓ FAQ

#### Why does the same URL appear more than once?

This is expected. Each row is one engine result. The same URL from Google and
DuckDuckGo gives you two rank observations. No cross-engine result is hidden.

#### Why did I get fewer rows than the cap?

The cap is a maximum, not a promise. A source may have fewer results, block a
request, or return rows removed by URL or sponsored-result checks. Read
the run summary for exact counts.

#### Does it need a search-engine API key?

No. It reads public, logged-out search results.

### 🏠 Related Actors

| Actor                                                                            | Use it for                                                   |
| -------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| [X Search & Discovery Scraper](https://apify.com/chronometrica/x-search-scraper) | Find public X posts with keywords, filters, and date ranges. |
| [YouTube Search Scraper](https://apify.com/chronometrica/youtube-search-scraper) | Find public YouTube videos and channels.                     |
| [TikTok Search Scraper](https://apify.com/chronometrica/tiktok-search-scraper)   | Find public TikTok posts and profiles.                       |

### 🛟 Support

For help, send the run ID, input, expected result, observed row or missing URL,
and the engine that had the problem.

Use public data in line with the law, search-engine rules, and Apify rules. Do
not use it to harass people or build sensitive personal profiles.

# Actor input Schema

## `queries` (type: `array`):

Enter 1 to 100 web searches. You can use quoted phrases and search operators such as site:, intitle:, or filetype:. Each engine and exact executed query receives its own saved-result cap.

## `engines` (type: `array`):

Choose one or more web search engines. Each engine runs independently and keeps its own result ranks.

## `maxResultsPerExecutedQuery` (type: `integer`):

Save up to this many results for each query on each engine. Choose 1 to 100. For example, two engines with a limit of 10 can save up to 20 rows for one query. Sources may return fewer.

## `country` (type: `string`):

Choose a country for localized results. The same country is requested from every selected engine. Availability and ranking can vary by engine.

## `language` (type: `string`):

Language code used by search engines where supported, such as en, fr, de, or ja.

## `safeSearch` (type: `boolean`):

Ask supported engines to filter explicit results. Search engines may apply their own local rules.

## `includeSponsoredResults` (type: `boolean`):

Off by default. When off, sponsored results are omitted. When on, they are saved with isSponsored and advertiserDomain fields.

## Actor input object example

```json
{
  "queries": [
    "AI agents"
  ],
  "engines": [
    "google"
  ],
  "maxResultsPerExecutedQuery": 10,
  "country": "US",
  "language": "en",
  "safeSearch": true,
  "includeSponsoredResults": false
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "queries": [
        "AI agents"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("chronometrica/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": ["AI agents"] }

# Run the Actor and wait for it to finish
run = client.actor("chronometrica/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": [
    "AI agents"
  ]
}' |
apify call chronometrica/google-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Search Scraper — Bing, Brave & DuckDuckGo",
        "description": "Scrape Google, Bing, Brave, and DuckDuckGo search results. Export each engine result with its exact query, rank, URL, title, and snippet.",
        "version": "1.0",
        "x-build-id": "hr0Jz7FAlfOZEohKw"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/chronometrica~google-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-chronometrica-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/chronometrica~google-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-chronometrica-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/chronometrica~google-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-chronometrica-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 queries",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "Enter 1 to 100 web searches. You can use quoted phrases and search operators such as site:, intitle:, or filetype:. Each engine and exact executed query receives its own saved-result cap.",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "AI agents"
                        ]
                    },
                    "engines": {
                        "title": "Search engines",
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Choose one or more web search engines. Each engine runs independently and keeps its own result ranks.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "google",
                                "bing",
                                "brave",
                                "duckduckgo"
                            ],
                            "enumTitles": [
                                "Google",
                                "Bing",
                                "Brave",
                                "DuckDuckGo"
                            ]
                        },
                        "default": [
                            "google"
                        ]
                    },
                    "maxResultsPerExecutedQuery": {
                        "title": "Maximum results per engine query",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Save up to this many results for each query on each engine. Choose 1 to 100. For example, two engines with a limit of 10 can save up to 20 rows for one query. Sources may return fewer.",
                        "default": 10
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "VG",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "BQ",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "SZ",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "KP",
                            "MK",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "KR",
                            "SS",
                            "ES",
                            "LK",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "SD",
                            "SR",
                            "SJ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UM",
                            "VI",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UY",
                            "UZ",
                            "VU",
                            "VA",
                            "VE",
                            "VN",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                        ],
                        "type": "string",
                        "description": "Choose a country for localized results. The same country is requested from every selected engine. Availability and ranking can vary by engine.",
                        "default": "US"
                    },
                    "language": {
                        "title": "Language",
                        "minLength": 2,
                        "maxLength": 12,
                        "type": "string",
                        "description": "Language code used by search engines where supported, such as en, fr, de, or ja.",
                        "default": "en"
                    },
                    "safeSearch": {
                        "title": "Safe search",
                        "type": "boolean",
                        "description": "Ask supported engines to filter explicit results. Search engines may apply their own local rules.",
                        "default": true
                    },
                    "includeSponsoredResults": {
                        "title": "Include sponsored results",
                        "type": "boolean",
                        "description": "Off by default. When off, sponsored results are omitted. When on, they are saved with isSponsored and advertiserDomain fields.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
