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

Scrape Google Trends for any keyword or Trends link: interest over time, by country, region and city, top and rising related queries, keyword comparison and Trending Now. No login or API key. Bulk input, auto proxy fallback. Export JSON, CSV or Excel.

- **URL**: https://apify.com/data_minds/google-trends-scraper.md
- **Developed by:** [Data Minds](https://apify.com/data_minds) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What is Google Trends Scraper?

**Google Trends Scraper** is a Google Trends scraper that turns keywords or [Google Trends](https://trends.google.com) links into structured search-interest data: interest over time, interest by country, region, city and metro area, top and rising related queries, topic suggestions and a shared-scale comparison. Leave the keywords empty to collect what is trending right now. Results arrive as one dataset row per date point, from $0.005 per result on the Free plan and $0.0035 on Gold. [🚀 Try it free](https://apify.com/data_minds/google-trends-scraper)

- 🔎 **Keyword research:** see how demand for a keyword moves and which related queries are rising.
- 📅 **Seasonality analysis:** look back up to 2004 and find the peak and low month of a keyword.
- 🌍 **Market research:** compare interest between countries, regions, cities and metro areas.
- 💡 **Content planning:** pick topics by what is trending now in your region and category.
- 📊 **Trend monitoring:** schedule runs and keep a record of how search interest changes.

Because it runs on Apify, you also get the API, scheduling, webhooks, integrations and export to JSON, CSV, Excel, XML or HTML.

#### What can Google Trends Scraper do?

- 📈 **Interest over time:** one row per date point with a 0-100 interest value, plus average, peak, growth, trend, volatility and seasonality statistics.
- 🌍 **Geographic breakdown:** interest by country (worldwide searches), region, city and US metro area, ranked by value.
- 🔗 **Related queries and topics:** top and rising related queries with breakout flags, and suggested topics.
- 🆚 **Keyword comparison:** a shared-scale comparison for up to 5 keywords that use the same settings.
- 🔥 **Trending Now:** currently trending searches with search volume, percent increase, categories and related queries.
- 🧭 **Flexible filters:** region, category, preset period or custom date range, and web, image, news, YouTube or shopping search.

***

### What data can Google Trends Scraper extract?

Keyword runs save one row for each date point. The lists of places and related queries are filled on the first row of each keyword and left empty on the others; the statistics, `relatedTopicSuggestions` and `comparison` repeat on every row.

| Data | Fields |
|---|---|
| 🔎 Keyword and settings | `term`, `geo`, `geoName`, `timeRange`, `category`, `searchType` |
| 📅 Date point | `date`, `interest`, `isPartial`, `hasData` |
| 📊 Summary statistics | `averageInterest`, `peakInterest`, `peakDate`, `trend`, `growthPct`, `volatility`, `seasonalPeakMonth`, `seasonalLowMonth`, `lowSearchVolume` |
| 🌍 Interest by place | `interestByCountry`, `interestByRegion`, `interestByCity`, `interestByMetro` (each item has `name`, `code`, `value`, `rank`, `lat`, `lng`) |
| 🔗 Related queries | `relatedQueriesTop` (`query`, `value`, `exploreUrl`), `relatedQueriesRising` (`query`, `growthPct`, `isBreakout`, `exploreUrl`) |
| 💡 Topic suggestions | `relatedTopicSuggestions` (`title`, `type`, `topicId`) |
| 🆚 Comparison | `comparison` (`comparedWith`, `sharedScaleAverage`, `shareOfInterestPct`, `sharedScaleTimeline`, `sharedScaleDates`) |
| 🧷 Link | `exploreUrl` |
| 🔥 Trending Now rows | `term`, `geo`, `geoName`, `window`, `startedAt`, `endedAt`, `isActive`, `searchVolume`, `percentIncrease`, `categories`, `relatedQueries`, `exploreUrl` |
| ❗ Failed keywords | `term`, `geo`, `error` |

> **Note:** `interestByCountry` is filled only for worldwide searches, `interestByRegion` only when the region is a whole country, and `interestByMetro` only for the United States. `growthPct`, `trend` and the seasonal months can be empty when a keyword has too little data (`lowSearchVolume` is then true). Seasonal months need at least two years of data.

#### What data can't Google Trends Scraper extract?

- Exact search counts. Interest values are Google's relative 0-100 index for the chosen region and period.
- Trending Now data for periods other than the past 4 hours, past day or past 7 days.

***

### How to scrape Google Trends data

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open [Google Trends Scraper](https://apify.com/data_minds/google-trends-scraper).
3. Enter one or more keywords in `searchTerms`, or paste Google Trends links into `startUrls`.
4. Set `geo`, `timeRange` and `category`, and choose a `searchType`.
5. Set `maxItems` to the number of date points you want per keyword, or `0` for all of them.
6. Click **Start** and wait for the run to finish.
7. Open the Output tab, pick a view and download your data in JSON, CSV, Excel, XML or HTML.

***

### How much does it cost to scrape Google Trends?

Google Trends Scraper uses pay-per-event pricing: you pay for each result saved to the dataset, and the price falls on higher Apify plans. Platform usage is billed in addition.

| Apify plan | Price per result | Price per 1,000 results |
|---|---|---|
| 🆓 Free | $0.005 | $5.00 |
| 🥉 Bronze | $0.0045 | $4.50 |
| 🥈 Silver | $0.004 | $4.00 |
| 🥇 Gold | $0.0035 | $3.50 |

Each run also adds one start event of $0.00005 per GB of memory, with a minimum of one. At the default 1 GB of memory, that is one event, or $0.00005. Rows with an `error` are saved but not charged.

**Worked example.** One keyword with the default `maxItems` of 10 saves up to 10 rows. On the Free plan that is 10 x $0.005 = $0.05, plus the $0.00005 start event and platform usage.

**Free plan math.** The $5 monthly credit on the Apify Free plan covers about 1,000 results at the Free price ($5 / $0.005), before platform usage.

See the [pricing tab](https://apify.com/data_minds/google-trends-scraper/pricing) for all events.

#### Is scraping Google Trends free?

You can start for free. The Apify Free plan includes a $5 monthly credit, which covers about 1,000 results at $0.005 each before platform usage. Only rows saved to the dataset are charged, and you can set a maximum spend per run.

***

### Input

Nothing is required. Leave `searchTerms` and `startUrls` empty to collect Trending Now. The prefilled input below analyses one keyword for the past 12 months, worldwide.

```json
{
  "searchTerms": ["tiktok scraper"],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

All other fields use their defaults. See the [input schema](https://apify.com/data_minds/google-trends-scraper/input-schema) for the full description of every field.

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `searchTerms` | array | No | `["tiktok scraper"]` (prefill) | Keywords, one per line. Commas also split a line. |
| `startUrls` | array | No | empty | Google Trends links. Region, period, category and search type in a link override the fields below. |
| `geo` | string | No | empty (worldwide) | Country or region name or code, such as `US`, `California` or `US-CA`. |
| `timeRange` | string | No | `today 12-m` | `now 1-H`, `now 4-H`, `now 1-d`, `now 7-d`, `today 1-m`, `today 3-m`, `today 12-m`, `today 5-y` or `all`. |
| `customTimeRange` | string | No | empty | Two dates as `YYYY-MM-DD YYYY-MM-DD`. Overrides `timeRange`. |
| `category` | string | No | empty (all) | Topic name or id, such as `Health` or `45`. |
| `searchType` | string | No | `web` | `web`, `images`, `news`, `youtube` or `shopping`. |
| `maxItems` | integer | No | `10` | Rows saved per keyword, or in total for Trending Now. `0` means no limit. Maximum 100000. |
| `compareTerms` | boolean | No | `true` | Adds a shared-scale comparison for keywords with the same settings, up to 5 per group. |
| `includeGeoBreakdown` | boolean | No | `true` | Adds interest by country, region, city and metro area. |
| `maxConcurrency` | integer | No | `4` | Keywords processed at the same time (1 to 10). |
| `maxRequestRetries` | integer | No | `3` | Retries for a rejected request (1 to 10). |
| `proxyConfiguration` | object | No | Apify Proxy off | Optional proxy settings. |

#### maxItems

`maxItems` limits the date points saved for each keyword, and each saved row is one charged result. The default of 10 saves only the first 10 date points, so set `0` when you want the full timeline.

- ✅ Good: `"maxItems": 0` to save every date point of the chosen period.
- ❌ Bad: leaving `maxItems` at `10` and expecting a full year of weekly values.

> **Warning:** With `maxItems` set to `0` and many keywords on a long period, the number of charged results grows quickly. Set a maximum spend per run to stay in control.

#### searchTerms and startUrls

Each keyword becomes its own analysis. A Google Trends link adds its keywords and takes its region, period, category and search type from the link. Identical keyword and setting combinations are analysed once.

- ✅ Good: `["tiktok scraper", "instagram scraper"]` to analyse and compare two keywords.
- ❌ Bad: `["https://example.com/page"]` because only Google Trends links are read as links.

#### geo, category and Trending Now

With no keywords and no links the Actor collects Trending Now. Trending Now supports the past 4 hours, past day and past 7 days; other periods use the past day. It needs a country, so an empty `geo` means the US.

- ✅ Good: `"geo": "GB", "timeRange": "now 7-d", "category": "Sports"` for sports trends in the United Kingdom over 7 days.
- ❌ Bad: `"category": "Cryptocurrency"` for Trending Now, because it is not a Trending Now category and no filter is applied.

> **Warning:** An unknown `geo` or `category` is saved as a row with an `error` message and the suggested closest names instead of data.

***

### Output

Results appear in the run's dataset, in the Output and Storage tabs. You can view them as a table and download them in JSON, CSV, Excel, XML or HTML. The Output tab has views for the keyword overview, interest over time, interest by country, region, city and metro area, top and rising related queries, topic suggestions, keyword comparison and Trending Now. Each run also saves a `RUN_SUMMARY` record in the key-value store with `totalRows`, `totalDone`, `charged`, `failures`, `errors`, `durationSecs` and `blocked`.

#### JSON example

Results for the input example above (values are examples). The first row of a keyword is shown; later rows repeat the statistics, `relatedTopicSuggestions` and `comparison`, and carry empty place and related-query lists.

```json
{
  "term": "tiktok scraper",
  "geo": "WORLD",
  "geoName": "Worldwide",
  "timeRange": "Past 12 months",
  "category": "All categories",
  "searchType": "web",
  "averageInterest": 39.42,
  "peakInterest": 100,
  "peakDate": "2026-06-14",
  "trend": "falling",
  "growthPct": -22.5,
  "volatility": 0.41,
  "seasonalPeakMonth": null,
  "seasonalLowMonth": null,
  "lowSearchVolume": false,
  "exploreUrl": "https://example.com/explore?q=tiktok+scraper",
  "comparison": null,
  "relatedTopicSuggestions": [{"title": "Example topic", "type": "Topic", "topicId": "/m/0example"}],
  "date": "2025-11-02",
  "interest": 47,
  "isPartial": false,
  "hasData": true,
  "interestByCountry": [{"name": "Example Country", "code": "EX", "value": 100, "rank": 1, "lat": 10.5, "lng": 20.5}],
  "interestByRegion": [],
  "interestByCity": [],
  "interestByMetro": [],
  "relatedQueriesTop": [{"query": "example query", "value": 100, "exploreUrl": "https://example.com/explore?q=example+query"}],
  "relatedQueriesRising": [{"query": "example rising query", "growthPct": 250, "isBreakout": false, "exploreUrl": "https://example.com/explore?q=example+rising+query"}]
}
```

For Trending Now (empty `searchTerms` and `startUrls`) each row looks like this:

```json
{
  "term": "example trending term",
  "geo": "US",
  "geoName": "United States",
  "window": "Past 24 hours",
  "startedAt": "2026-11-06T08:15Z",
  "endedAt": null,
  "isActive": true,
  "searchVolume": 200000,
  "percentIncrease": 1000,
  "categories": ["Sports"],
  "relatedQueries": ["example related query"],
  "exploreUrl": "https://example.com/explore?q=example+trending+term&geo=US"
}
```

#### Notes and limitations

- Interest values are relative (0-100) for the chosen region and period, not search counts.
- Keyword runs save one row per date point; the places and related queries appear only on the first row of each keyword.
- `comparison` is filled only when at least two keywords share the same region, period, category and search type.
- A keyword that cannot be collected is saved as a row with `error`, and is not charged.
- If the site limits requests for too long, the run stops and keeps the rows already saved.

***

### Tips and advanced usage

- 📅 **Track demand on a schedule:** run weekly with the same keywords and compare `averageInterest` and `trend` between runs.
- 🆚 **Compare brands fairly:** put up to 5 keywords with identical settings in one run to get `shareOfInterestPct` on a shared scale.
- 🌍 **Zoom in on a market:** set `geo` to a country to get regions and cities, or to a US state such as `US-CA` to get cities.
- 🔗 **Paste a Trends link:** copy a link from the Google Trends site into `startUrls` to reuse its exact settings.
- 🔥 **Daily trending list:** leave the keywords empty and schedule a run to build a record of Trending Now.

***

### Integrations and API

#### Can I use Google Trends Scraper as an API?

Yes. The [Apify API](https://docs.apify.com/api/v2) lets you start runs, schedule them and fetch results, so you can use it as a Google Trends API alternative from your own code. Use the `apify-client` package for Node.js or Python. The [API tab](https://apify.com/data_minds/google-trends-scraper/api) has ready-to-use code.

#### How to scrape Google Trends with Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("data_minds/google-trends-scraper").call(
    run_input={
        "searchTerms": ["tiktok scraper"],
        "proxyConfiguration": {"useApifyProxy": False},
    }
)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["term"], item["date"], item["interest"])
```

#### Can I integrate Google Trends Scraper with other apps?

Yes. Connect it with Make, Zapier, Google Sheets, Slack and more through Apify integrations. Use [webhooks](https://docs.apify.com/integrations/webhooks) to trigger an action when a run finishes, and schedule runs to keep a trend report fresh.

#### Can I use Google Trends Scraper with AI agents (MCP)?

Yes. Open the [MCP tab](https://apify.com/data_minds/google-trends-scraper/api/mcp) for setup steps to connect the Actor to Claude and other MCP clients.

***

### Other Google and trends scrapers

| Actor | What it does |
|---|---|
| 🔥 [Google Trends : Trending Search Scraper](https://apify.com/data_minds/google-trends-trending-search-scraper) | Collects the live Trending now list for one or many countries with volume, growth and related news. Choose it when you want the daily list, and this Actor when you want interest over time for your own keywords. |
| 🔎 [Google Search Results Scraper](https://apify.com/data_minds/google-search-results-scraper) | Scrapes Google Search: organic results, AI Overview, People Also Ask, related searches, ads, videos and knowledge panel for bulk keywords or Google URLs. |
| 🎬 [YouTube Search API](https://apify.com/data_minds/youtube-search-api) | Searches YouTube for videos, channels and playlists with enriched engagement, channel and transcript data. |

***

### FAQ

#### Is it legal to scrape Google Trends?

Scraping publicly available data is generally legal, but you should respect personal data rules and the site's terms. Google Trends data is aggregated and anonymous, not personal profiles. This is not legal advice, so read [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/) and check your own use case.

#### How does Google Trends Scraper work?

You enter keywords or Google Trends links and choose a region, period, category and search type. The Actor then saves one dataset row per date point, with statistics, interest by place, related queries and topic suggestions. Leave the keywords empty and it saves the current Trending Now list instead.

#### Why scrape Google Trends data?

Search interest shows what people want before it appears in sales or traffic. Marketers use it for keyword research and content planning, analysts for market research and seasonality analysis, and product teams for demand checks. Saving the numbers on a schedule also builds your own history for trend monitoring.

#### Why am I getting fewer results than expected?

The default `maxItems` is 10, so each keyword saves only its first 10 date points. Set it to 0 for the full timeline. Very low-volume keywords can also have little or no regional data, and `lowSearchVolume` marks them. A narrow category or region filter reduces data further.

#### Google Trends Scraper is not working. What should I do?

Check that your keywords, `geo`, `category` and dates are valid, because invalid values are saved as rows with an `error` message. If the problem remains, open a ticket on the [Issues tab](https://apify.com/data_minds/google-trends-scraper/issues/open) with your run link, and we will look into it.

#### Are Google Trends values real search volumes?

No. Google Trends reports a relative index from 0 to 100, where 100 is the peak popularity in the chosen region and period. Use it to compare keywords, regions and dates. For Trending Now rows, `searchVolume` is the volume figure Google lists for each trend.

#### Can I compare several keywords on the same scale?

Yes. Add up to 5 keywords with the same region, period, category and search type, and keep `compareTerms` on. Each row then has a `comparison` object with `sharedScaleAverage` and `shareOfInterestPct`. Keywords with different settings are analysed separately and get no comparison, so keep the settings identical.

#### Do I need a Google account to use Google Trends Scraper?

No. The input has no fields for a login, cookies or an API key. You need only an Apify account to start a run. Enter your keywords and settings, and the results appear in the dataset as each keyword finishes, ready to export.

#### How is this different from the Trending Search Scraper?

This Actor analyses keywords you choose: interest over time, places and related queries. The [Google Trends : Trending Search Scraper](https://apify.com/data_minds/google-trends-trending-search-scraper) focuses on the daily Trending now list for many countries, with news. Leaving the keywords empty here also returns a basic Trending Now list.

***

### Support and feedback

Found a bug or have a feature request? Please open an issue on the [Issues tab](https://apify.com/data_minds/google-trends-scraper/issues/open).

Need a custom solution or more data? Contact hello.dataminds@gmail.com.

Built and maintained by the [data_minds team on Apify](https://apify.com/data_minds).

This Actor is an independent tool and is not affiliated with or endorsed by Google. You are responsible for using the data in line with applicable laws and the terms of the sites involved.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords to analyse, one per line. Commas also split a line. Leave empty (and no links) to get Trending Now.

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

Optional Google Trends links. Region, period, category and search type in a link override the fields below.

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

Country or region name or code, e.g. United States, US, California or US-CA. Empty means worldwide (Trending Now falls back to US).

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

Period to analyse. Trending Now supports the past 4 hours, day and 7 days.

## `customTimeRange` (type: `string`):

Optional range in the format YYYY-MM-DD YYYY-MM-DD. Overrides the time range.

## `category` (type: `string`):

Topic filter by name or id, e.g. Health, Finance, Sports or 45. Empty means all categories.

## `searchType` (type: `string`):

Which Google search the interest data comes from.

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

Maximum rows saved per keyword (one row per date point), or in total for Trending Now. 0 means no limit.

## `compareTerms` (type: `boolean`):

Add a shared-scale comparison for keywords that use the same region, period, category and search type (up to 5 per group).

## `includeGeoBreakdown` (type: `boolean`):

Add interest by country, region, city and metro area to every keyword.

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

How many keywords are processed at the same time.

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

How many times a rejected request is retried before it counts as failed.

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

Optional. Leave Apify Proxy off to use the default settings.

## Actor input object example

```json
{
  "searchTerms": [
    "tiktok scraper"
  ],
  "geo": "",
  "timeRange": "today 12-m",
  "category": "",
  "searchType": "web",
  "maxItems": 10,
  "compareTerms": true,
  "includeGeoBreakdown": true,
  "maxConcurrency": 4,
  "maxRequestRetries": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

One row per keyword with the summary statistics.

## `timeline` (type: `string`):

One row per date and keyword.

## `interestByCountry` (type: `string`):

One row per country (worldwide searches).

## `interestByRegion` (type: `string`):

One row per region.

## `interestByCity` (type: `string`):

One row per city.

## `interestByMetro` (type: `string`):

One row per metro area (US).

## `relatedQueriesTop` (type: `string`):

One row per top related query.

## `relatedQueriesRising` (type: `string`):

One row per rising related query.

## `suggestions` (type: `string`):

One row per suggested topic.

## `comparison` (type: `string`):

Shared-scale comparison between keywords.

## `trendingNow` (type: `string`):

One row per currently trending search.

# 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 = {
    "searchTerms": [
        "tiktok scraper"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_minds/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 = {
    "searchTerms": ["tiktok scraper"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("data_minds/google-trends-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "tiktok scraper"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call data_minds/google-trends-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_minds/google-trends-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Yh0eskkOZKJXw8ve2/builds/UisYO2B3CU5xFAnbR/openapi.json
