# Google Trends Scraper (`parseforge/google-trends-scraper`) Actor

Track what the world is searching! Pull Google Trends data for any keyword with interest over time, geo breakdown, related queries, rising topics, and category signals. Perfect for market research, campaign planning, SEO strategy, and content ideas. Start spotting hot trends in minutes!

- **URL**: https://apify.com/parseforge/google-trends-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** SEO tools, News, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $14.00 / 1,000 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.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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 📈 Google Trends Scraper

> 🚀 **Export Google Trends interest data for any keyword in seconds.** Weekly interest over time, **50 regional breakdowns**, top queries, rising queries, and related topics. No API key, no registration, no manual chart screenshots.

> 🕒 **Last updated:** 2026-04-21 · **📊 10 fields** per keyword · **📅 9 time ranges** · **🌍 Worldwide + per-country geo** · **⚡ 25 items per query**

The **Google Trends Scraper** pulls structured interest data for any keyword from Google Trends and returns a clean record per keyword. You get weekly interest values on a 0-100 scale, a region breakdown (up to 50 geographies), the top 25 related queries, the top 25 rising queries, and the top 25 related topics. Timeframe and geo filters let you compare against the last hour, the last week, or the last five years.

Each keyword runs in its own proxy session with a fresh cookie jar, which keeps Google Trends rate limits in check. Aggregate stats (`averageInterest`, `peakInterest`, `peakDate`) are computed alongside the raw series so you can score keywords without extra math. Output is ready for content calendars, trend dashboards, and timing analyses.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Content marketers, SEO teams, product managers, investors, journalists, growth analysts | Content calendar planning, product launch timing, keyword research, market sizing, trend-spotting |

---

### 📋 What the Google Trends Scraper does

Five trend workflows in a single run:

- 📊 **Interest over time.** Weekly 0-100 values for the selected timeframe.
- 🌍 **Interest by region.** Top 50 countries or states ranked by relative interest.
- 🔥 **Rising queries.** Fastest-growing related search terms, ranked by breakout score.
- 🏆 **Top queries.** Most popular related searches, ranked by absolute volume.
- 🧠 **Related topics.** Knowledge graph entities co-occurring with your keyword.

Each record also ships with `averageInterest`, `peakInterest`, `peakDate`, and a `scrapedAt` timestamp.

> 💡 **Why it matters:** trends data powers every content calendar, product launch window, and investment thesis. Manual chart screenshots do not scale. This Actor returns structured records that drop straight into your dashboard.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough of rising-query monitoring across a 10-keyword set._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>keywords</code></td><td>array of strings</td><td>required</td><td>One or more keywords to analyze.</td></tr>
<tr><td><code>timeRange</code></td><td>string</td><td><code>"today 12-m"</code></td><td>Google Trends time range (<code>today 12-m</code>, <code>now 7-d</code>, <code>today 5-y</code>, <code>all</code>, etc.).</td></tr>
<tr><td><code>geo</code></td><td>string</td><td><code>""</code></td><td>ISO country code or empty for worldwide.</td></tr>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Keywords returned. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
</tbody>
</table>

**Example: US trend analysis across tech keywords.**

```json
{
    "keywords": ["ai agents", "llm", "rag", "claude"],
    "timeRange": "today 12-m",
    "geo": "US",
    "maxItems": 10
}
````

**Example: worldwide 5-year view of a product category.**

```json
{
    "keywords": ["electric vehicle"],
    "timeRange": "today 5-y",
    "geo": "",
    "maxItems": 1
}
```

> ⚠️ **Good to Know:** Google Trends applies aggressive rate limiting per IP. The scraper rotates proxy sessions per keyword to reduce throttling. For hot keywords, expect occasional empty records; retry with a longer gap or different country.

***

### 📊 Output

Each record contains **10 fields**. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🔎 `keyword` | string | `"ai agents"` |
| 🌍 `geo` | string | `"US"` |
| 📅 `timeRange` | string | `"today 12-m"` |
| 📊 `averageInterest` | number | `45` |
| 🏔️ `peakInterest` | number | `100` |
| 📆 `peakDate` | string | null | `"Feb 16 2026"` |
| 📈 `interestOverTime` | array | `[{"time": "Apr 21 2025", "value": 23}, ...]` |
| 🌐 `interestByRegion` | array | `[{"geoName": "California", "geoCode": "US-CA", "value": 100}, ...]` |
| 🏆 `topQueries` | array | `[{"query": "what are ai agents", "value": 100}, ...]` |
| 🔥 `risingQueries` | array | `[{"query": "claude agents", "value": 9500}, ...]` |
| 🧠 `relatedTopics` | array | `[{"topic": "OpenAI", "type": "Company", "value": 100}]` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-04-21T12:00:00.000Z"` |
| ❗ `error` | string | null | `"Rate limited"` on failure |

#### 📦 Sample records

<details>
<summary><strong>📈 Typical keyword with full widgets</strong></summary>

```json
{
    "keyword": "ai agents",
    "geo": "US",
    "timeRange": "today 12-m",
    "averageInterest": 45,
    "peakInterest": 100,
    "peakDate": "Feb 16 2026",
    "interestOverTime": [
        { "time": "Apr 21 2025", "value": 23 },
        { "time": "Apr 28 2025", "value": 25 }
    ],
    "interestByRegion": [
        { "geoName": "California", "geoCode": "US-CA", "value": 100 },
        { "geoName": "New York", "geoCode": "US-NY", "value": 82 }
    ],
    "topQueries": [
        { "query": "what are ai agents", "value": 100 }
    ],
    "risingQueries": [
        { "query": "claude agents", "value": 9500 }
    ],
    "relatedTopics": [
        { "topic": "OpenAI", "type": "Company", "value": 100 }
    ],
    "scrapedAt": "2026-04-21T12:00:00.000Z"
}
```

</details>

<details>
<summary><strong>🌍 Worldwide 5-year view</strong></summary>

```json
{
    "keyword": "electric vehicle",
    "geo": "",
    "timeRange": "today 5-y",
    "averageInterest": 58,
    "peakInterest": 100,
    "peakDate": "Nov 2022",
    "interestOverTime": [
        { "time": "Apr 2021", "value": 31 }
    ],
    "interestByRegion": [
        { "geoName": "Norway", "geoCode": "NO", "value": 100 }
    ],
    "topQueries": [{ "query": "electric car", "value": 100 }],
    "risingQueries": [{ "query": "ev charging", "value": 240 }],
    "relatedTopics": [{ "topic": "Tesla", "type": "Company", "value": 100 }],
    "scrapedAt": "2026-04-21T12:00:00.000Z"
}
```

</details>

<details>
<summary><strong>🚧 Rate-limited keyword (empty but logged)</strong></summary>

```json
{
    "keyword": "some hot term",
    "geo": "US",
    "timeRange": "now 1-d",
    "averageInterest": 0,
    "peakInterest": 0,
    "peakDate": null,
    "interestOverTime": [],
    "interestByRegion": [],
    "topQueries": [],
    "risingQueries": [],
    "relatedTopics": [],
    "scrapedAt": "2026-04-21T12:00:00.000Z",
    "error": "429 Rate limited"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 📈 | **Full widget set.** Interest over time, by region, top queries, rising queries, related topics. |
| 🌍 | **Geo targeting.** Worldwide or any ISO country code (or state within the US). |
| 📅 | **9 timeframes.** From the last hour to all time. |
| 🔁 | **Session rotation.** Fresh proxy session per keyword reduces rate limiting. |
| 🧠 | **Aggregate stats.** Average, peak, peak date computed for you. |
| 🔌 | **Integrations.** Drops into Sheets, Slack, dashboards, and RAG pipelines. |
| 🚫 | **No API key.** No SerpAPI account, no Google Cloud project required. |

> 📊 Content marketers who time posts to rising trend windows see 2 to 3x the search traffic of competitors publishing on flat-interest keywords.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Google Trends Scraper** *(this Actor)* | $5 free credit, then pay-per-use | Worldwide + 200 countries | **Live per run** | timeframe, geo, keyword list | ⚡ 2 min |
| SerpAPI Trends | $50+/month | Full widgets | Real-time | Rich | ⏳ Hours |
| Google Trends UI (manual) | Free | Full | Real-time | Manual | 🐢 Slow |
| DIY scraping scripts | Free | Your code | Your schedule | Whatever you build | 🐢 Days |

Pick this Actor when you want structured Trends data without subscribing to a SerpAPI-style service.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the Google Trends Scraper page on the Apify Store.
3. 🎯 **Set keywords.** Enter the terms you want to analyze plus timeframe and geo.
4. 🚀 **Run it.** Click **Start** and let the Actor pull the widgets.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### ✍️ Content Marketing

- Time blog posts to rising-trend windows
- Build editorial calendars around seasonality
- Spot emerging topics before competitors
- Feed an AI writer with current rising queries

</td>
<td width="50%" valign="top">

#### 🚀 Product Launches

- Validate demand before building
- Pick launch regions by interest density
- Time announcements to peak interest
- Track post-launch awareness over time

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 📈 SEO & Growth

- Discover rising keywords for content
- Track category interest for prioritization
- Map regional opportunities for localization
- Monitor brand vs category over time

</td>
<td width="50%" valign="top">

#### 📊 Research & Investment

- Spot category growth before earnings hit
- Correlate search interest with stock moves
- Map geographic centers of a trend
- Compile case studies for reports

</td>
</tr>
</table>

***

### 🔌 Automating Google Trends Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Daily keyword tracking over a watchlist builds a historical trend archive downstream.

***

### ❓ Frequently Asked Questions

<details>
<summary><strong>🧩 How does it work?</strong></summary>

For each keyword, the Actor warms a fresh session, fetches an explore token, then calls the Trends widget APIs (multiline, comparedgeo, relatedsearches) to populate the record. Output is a clean structured row per keyword.

</details>

<details>
<summary><strong>📏 How accurate is the data?</strong></summary>

Values come directly from Google Trends so they match what you see in the public UI. Relative interest is normalized to 0-100 within the selected timeframe and geo.

</details>

<details>
<summary><strong>⏰ What timeframes are supported?</strong></summary>

`now 1-H`, `now 4-H`, `now 1-d`, `now 7-d`, `today 1-m`, `today 3-m`, `today 12-m`, `today 5-y`, and `all`.

</details>

<details>
<summary><strong>🌍 Can I get state-level data?</strong></summary>

Yes. Set `geo` to a US state code like `US-CA` or `US-NY` for state-level interest breakdowns.

</details>

<details>
<summary><strong>🔁 Why do some keywords return empty?</strong></summary>

Google Trends rate-limits aggressively. The scraper rotates proxy sessions per keyword, but very hot keywords may still hit a limit. Retry later or use a less busy country code.

</details>

<details>
<summary><strong>⚖️ Is it legal?</strong></summary>

Google Trends data is published publicly. Internal use for research, content strategy, and market research is standard. Redistribution of raw Trends data may be restricted by Google's terms.

</details>

<details>
<summary><strong>💼 Can I use this commercially?</strong></summary>

Yes for internal research and dashboards. Review Google's terms if you plan to redistribute or expose the data to end users.

</details>

<details>
<summary><strong>💳 Do I need a paid Apify plan to use this Actor?</strong></summary>

No. Free plan covers testing (10 keywords per run). A paid plan lifts the limit, speeds up concurrency, and gives you residential proxy access which helps with Trends rate limits.

</details>

<details>
<summary><strong>🔁 What happens if a run fails?</strong></summary>

Apify retries transient errors. Per-keyword failures are logged in the `error` field but the run continues.

</details>

<details>
<summary><strong>🧠 Can I compare two keywords in the same chart?</strong></summary>

Each keyword is analyzed independently in this version. Pull both and compare downstream in your analytics tool.

</details>

<details>
<summary><strong>🌐 Does it support non-English keywords?</strong></summary>

Yes. Pass any keyword in any language. Results will reflect searches in that language within the selected geo.

</details>

<details>
<summary><strong>🆘 What if I need help?</strong></summary>

Our team is available through the Apify platform and the Tally form below.

</details>

***

### 🔌 Integrate with any app

Google Trends Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate trend tracking
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Push alerts when trends spike
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Share weekly trend digests
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe trends into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export to Sheets for charts

You can also use webhooks to push trend data into dashboards and alerting pipelines.

***

### 🔗 Recommended Actors

- [**🔍 Google Search Scraper**](https://apify.com/parseforge/google-search-scraper) - SERP results with rank and description
- [**🤖 RAG Web Browser**](https://apify.com/parseforge/rag-web-browser) - Search or fetch URLs with LLM-ready output
- [**🎬 YouTube Transcript Scraper**](https://apify.com/parseforge/youtube-transcript-scraper) - Full transcripts for trending videos
- [**📰 Smart Article Extractor**](https://apify.com/parseforge/article-extractor) - Extract articles from news sites
- [**📸 Instagram Search Scraper**](https://apify.com/parseforge/instagram-search-scraper) - Profile lookup on Instagram

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more SEO and research tools.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with Google. It accesses only publicly available Google Trends data. Respect Google's terms of service and rate limits when running production workloads.

# Actor input Schema

## `keywords` (type: `array`):

Keywords to analyze.

## `timeRange` (type: `string`):

Google Trends time range string (e.g. 'today 12-m', 'today 1-m', 'now 7-d', 'all')

## `geo` (type: `string`):

ISO country code. Empty = Worldwide.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "keywords": [
    "web scraping",
    "ai agents"
  ],
  "timeRange": "today 12-m",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Complete dataset

# 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 = {
    "keywords": [
        "web scraping",
        "ai agents"
    ],
    "timeRange": "today 12-m",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/google-trends-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 = {
    "keywords": [
        "web scraping",
        "ai agents",
    ],
    "timeRange": "today 12-m",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/google-trends-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 '{
  "keywords": [
    "web scraping",
    "ai agents"
  ],
  "timeRange": "today 12-m",
  "maxItems": 10
}' |
apify call parseforge/google-trends-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Trends Scraper",
        "description": "Track what the world is searching! Pull Google Trends data for any keyword with interest over time, geo breakdown, related queries, rising topics, and category signals. Perfect for market research, campaign planning, SEO strategy, and content ideas. Start spotting hot trends in minutes!",
        "version": "1.0",
        "x-build-id": "mxfsbiuphUjtf15GH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~google-trends-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-google-trends-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/parseforge~google-trends-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-google-trends-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/parseforge~google-trends-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-google-trends-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": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Keywords to analyze.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "timeRange": {
                        "title": "Time Range",
                        "type": "string",
                        "description": "Google Trends time range string (e.g. 'today 12-m', 'today 1-m', 'now 7-d', 'all')"
                    },
                    "geo": {
                        "title": "Geo",
                        "type": "string",
                        "description": "ISO country code. Empty = Worldwide."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
