# Google Trends Gap Finder: rising abroad, not yet in your market (`trendgap/trend-gap`) Actor

Google Trends scraper for product research: finds trending products whose searches are taking off in the US, UK, South Korea or any country, but not yet in yours. Brand vs generic, growth, weekly curves. For ecommerce, importers and dropshipping.

- **URL**: https://apify.com/trendgap/trend-gap.md
- **Developed by:** [Lorenzo](https://apify.com/trendgap) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 trend alerts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Google Trends Gap Finder: rising abroad, not yet in your market

Most trending products take off in one country months before they reach the next one. Trend Gap finds that gap. It scans Google Trends in the countries where trends usually start, such as the United States, the United Kingdom and South Korea. Then it lists the products whose searches are taking off there but have **not yet started in your country**.

It is built for importers, online shops, dropshippers and product scouts who want to stock something before everyone else does.

### How it works

1. **Discover.** For each origin country and product category, it takes what Google Trends shows as rising most over the last 90 days. It keeps only things that look like products: people, TV shows, events, dishes, stores and apps are filtered out.
2. **Check.** For each candidate, it compares five years of weekly searches in the origin countries and in your country, on the same scale. A product is reported only if all of the following hold in at least one origin country:
   - searches today are at least 1.5× what they were 6–12 months ago;
   - searches are still close to their peak, not falling;
   - it is not a seasonal peak that also happened last year;
   - there is enough search volume to trust the curve.
3. **Compare with your country.** It is dropped if your country already searches for it at half the origin's level or more, or has been rising for two months.

### Output

One row per product, with:

- **Product:** the name, and whether it is a **brand** (buy from the distributor) or **generic** (any supplier can make it).
- **Where it is rising:** the countries, since when, and how much it has grown versus last year.
- **Your country:** how it is doing there (*no searches yet*, *low interest* or *starting to rise*), and the destination-to-origin ratio.
- **Charts:** the weekly curves for the last 52 weeks, and a Google Trends link to see it yourself.

### Input

| Field | Default | |
|---|---|---|
| Origin countries | US, GB, KR | 1 to 4 two-letter codes |
| Destination country | ES | your market |
| Categories | Shopping, Beauty & Fitness, Food & Drink, Home & Garden, Toys, Apparel | Google Trends category IDs |
| Max products to check | 25 | each one is billed |
| Proxy | Apify residential | Google Trends blocks repeated requests |

### Weekly monitoring

Trends move week by week, so the Actor works best on a schedule:

1. Save your input as a task (countries and categories).
2. Schedule it, for example every Monday.
3. Turn on **Only new products**.

Each week you then get only the products not reported before for that pair of countries. Products you have already seen are not billed again as alerts. Every row also carries `firstReported`, the date it was first reported to you.

### Pricing

You pay per event: a small amount for each product whose curves are checked, and more for each product reported. A run that finds nothing costs only the checks.

### Limits, honestly

- Google Trends shows relative interest, not sales.
- Some products that go viral never arrive in a given country.
- In a backtest on 19 viral products (Labubu, Stanley cup, Dubai chocolate and others), the rule warned in time in most cases, but not all. A small search volume or a slow, steady rise can stay below the threshold.
- Google Trends is not an official API, so runs can fail when Google changes something.

# Actor input Schema

## `originCountries` (type: `array`):

Where trends start. Two-letter country codes, 1 to 4 (Google compares at most 5 countries at once, destination included). Example: US, GB, KR.

## `destinationCountry` (type: `string`):

The country where you want to sell before everyone else. Two-letter code, e.g. ES, MX, FR, DE.

## `categories` (type: `array`):

Google Trends category IDs to scan. Defaults: 18 Shopping, 44 Beauty & Fitness, 71 Food & Drink, 11 Home & Garden, 432 Toys, 68 Apparel. Other useful ones: 611 Yoga & Pilates, 916 Coffee & Tea.

## `maxProductsToCheck` (type: `integer`):

How many candidate products get their 5-year curves compared. Each one is a billed 'product checked' event.

## `onlyNew` (type: `boolean`):

Report only products not reported in your earlier runs with the same countries. Turn it on when you schedule the Actor (e.g. every Monday) to get just what is new each week.

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

Google Trends blocks repeated requests from one IP. Residential proxies work best.

## Actor input object example

```json
{
  "originCountries": [
    "US",
    "GB",
    "KR"
  ],
  "destinationCountry": "ES",
  "categories": [
    "18",
    "44",
    "71",
    "11",
    "432",
    "68"
  ],
  "maxProductsToCheck": 25,
  "onlyNew": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

One row per product: where and since when it is rising, growth versus last year, brand or generic, and how it is doing in the destination country.

## `allFields` (type: `string`):

Every field, including the last 52 weeks of searches in the origin and in the destination country.

# 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 = {
    "originCountries": [
        "US",
        "GB",
        "KR"
    ],
    "destinationCountry": "ES",
    "categories": [
        "18",
        "44",
        "71",
        "11",
        "432",
        "68"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("trendgap/trend-gap").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 = {
    "originCountries": [
        "US",
        "GB",
        "KR",
    ],
    "destinationCountry": "ES",
    "categories": [
        "18",
        "44",
        "71",
        "11",
        "432",
        "68",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("trendgap/trend-gap").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 '{
  "originCountries": [
    "US",
    "GB",
    "KR"
  ],
  "destinationCountry": "ES",
  "categories": [
    "18",
    "44",
    "71",
    "11",
    "432",
    "68"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call trendgap/trend-gap --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,trendgap/trend-gap"
        }
    }
}
```

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/voqaaVhJdgbXyQwuT/builds/FlPKtdcYTtEzEkxlF/openapi.json
