{
  "openapi": "3.0.1",
  "info": {
    "title": "🔥 Google Trends : Trending Search Scraper",
    "description": "Scrape Google Trends trending searches for 55+ countries. Search volume,growth %, categories, related queries and news — one row per trend.",
    "version": "1.0",
    "x-build-id": "BeGNCCH63nOhSw35M"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/citrine_venus~google-trends-trending-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-citrine_venus-google-trends-trending-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/citrine_venus~google-trends-trending-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-citrine_venus-google-trends-trending-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/citrine_venus~google-trends-trending-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-citrine_venus-google-trends-trending-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",
        "properties": {
          "startUrls": {
            "title": "🔗 Google Trends URLs (bulk supported)",
            "type": "array",
            "description": "📋 **Optional.** Paste one or many Google Trends *Trending Now* URLs — one per line. Example: `https://trends.google.com/trending?geo=GB&hours=48`. Country, hours and category are read straight from each URL. Leave empty to just use the country picker below.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "🌍 Countries (bulk supported)",
            "uniqueItems": true,
            "type": "array",
            "description": "🗺️ Select **one or more countries**. Each country is collected independently — one failing country never stops the others. Add as many as you like for a multi-market sweep.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "CA",
                "AU",
                "IN",
                "BD",
                "PK",
                "DE",
                "FR",
                "IT",
                "ES",
                "NL",
                "BE",
                "CH",
                "AT",
                "SE",
                "NO",
                "DK",
                "FI",
                "IE",
                "PT",
                "GR",
                "PL",
                "CZ",
                "HU",
                "RO",
                "UA",
                "RU",
                "TR",
                "IL",
                "SA",
                "AE",
                "EG",
                "NG",
                "KE",
                "ZA",
                "MA",
                "BR",
                "MX",
                "AR",
                "CL",
                "CO",
                "PE",
                "JP",
                "KR",
                "CN",
                "TW",
                "HK",
                "SG",
                "MY",
                "TH",
                "VN",
                "PH",
                "ID",
                "NZ"
              ],
              "enumTitles": [
                "🇺🇸 United States",
                "🇬🇧 United Kingdom",
                "🇨🇦 Canada",
                "🇦🇺 Australia",
                "🇮🇳 India",
                "🇧🇩 Bangladesh",
                "🇵🇰 Pakistan",
                "🇩🇪 Germany",
                "🇫🇷 France",
                "🇮🇹 Italy",
                "🇪🇸 Spain",
                "🇳🇱 Netherlands",
                "🇧🇪 Belgium",
                "🇨🇭 Switzerland",
                "🇦🇹 Austria",
                "🇸🇪 Sweden",
                "🇳🇴 Norway",
                "🇩🇰 Denmark",
                "🇫🇮 Finland",
                "🇮🇪 Ireland",
                "🇵🇹 Portugal",
                "🇬🇷 Greece",
                "🇵🇱 Poland",
                "🇨🇿 Czechia",
                "🇭🇺 Hungary",
                "🇷🇴 Romania",
                "🇺🇦 Ukraine",
                "🇷🇺 Russia",
                "🇹🇷 Turkey",
                "🇮🇱 Israel",
                "🇸🇦 Saudi Arabia",
                "🇦🇪 United Arab Emirates",
                "🇪🇬 Egypt",
                "🇳🇬 Nigeria",
                "🇰🇪 Kenya",
                "🇿🇦 South Africa",
                "🇲🇦 Morocco",
                "🇧🇷 Brazil",
                "🇲🇽 Mexico",
                "🇦🇷 Argentina",
                "🇨🇱 Chile",
                "🇨🇴 Colombia",
                "🇵🇪 Peru",
                "🇯🇵 Japan",
                "🇰🇷 South Korea",
                "🇨🇳 China",
                "🇹🇼 Taiwan",
                "🇭🇰 Hong Kong",
                "🇸🇬 Singapore",
                "🇲🇾 Malaysia",
                "🇹🇭 Thailand",
                "🇻🇳 Vietnam",
                "🇵🇭 Philippines",
                "🇮🇩 Indonesia",
                "🇳🇿 New Zealand"
              ]
            },
            "default": [
              "US"
            ]
          },
          "extraCountryCodes": {
            "title": "➕ Extra country codes (anything not in the list)",
            "type": "array",
            "description": "🧭 Any two-letter code Google Trends supports, e.g. `LK`, `NP`, `QA`. Handy for markets missing from the picker above. Codes are merged with your selection.",
            "items": {
              "type": "string"
            }
          },
          "timeframe": {
            "title": "🕒 Time window",
            "enum": [
              "4",
              "24",
              "48",
              "168"
            ],
            "type": "string",
            "description": "How recent should a trend be to show up? Google decides how many terms exist for each window — wider window = more terms.",
            "default": "24"
          },
          "categories": {
            "title": "🏷️ Category filter (optional)",
            "uniqueItems": true,
            "type": "array",
            "description": "🎯 Keep only trends in the categories you pick. Leave **empty** to get every category. A term can belong to more than one category.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "13",
                "14",
                "15",
                "16",
                "17",
                "18",
                "19",
                "20"
              ],
              "enumTitles": [
                "🚗 Autos & Vehicles",
                "💄 Beauty & Fashion",
                "💼 Business & Finance",
                "🎬 Entertainment",
                "🍔 Food & Drink",
                "🎮 Games",
                "🏥 Health",
                "🎨 Hobbies & Leisure",
                "🎓 Jobs & Education",
                "⚖️ Law & Government",
                "📦 Other",
                "🐾 Pets & Animals",
                "🏛️ Politics",
                "🔬 Science",
                "🛍️ Shopping",
                "🏆 Sports",
                "💻 Technology",
                "✈️ Travel & Transportation",
                "🌍 Climate"
              ]
            },
            "default": []
          },
          "maxItems": {
            "title": "📬 Max trends per country (0 = everything)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "🎁 Hard stop on how many trending terms are saved **for each country**. Use a small number for a quick sample, or `0` to take every trend Google returns.",
            "default": 25
          },
          "language": {
            "title": "🗣️ Result language",
            "enum": [
              "en-US",
              "en-GB",
              "es",
              "fr",
              "de",
              "it",
              "pt-BR",
              "nl",
              "pl",
              "tr",
              "ru",
              "ar",
              "hi",
              "bn",
              "id",
              "ja",
              "ko",
              "zh-CN"
            ],
            "type": "string",
            "description": "Language used for the trend labels and news headlines you get back.",
            "default": "en-US"
          },
          "sortBy": {
            "title": "↕️ Sort the results",
            "enum": [
              "default",
              "volume",
              "recency",
              "growth"
            ],
            "type": "string",
            "description": "How rows are ordered inside each country before the max-items cap is applied.",
            "default": "default"
          },
          "newsMode": {
            "title": "🗞️ Attach related news articles",
            "enum": [
              "full",
              "rss",
              "off"
            ],
            "type": "string",
            "description": "**Full coverage** fetches articles for every trend that has them (richest data). **Headlines only** is a quick pass that covers just the top trends. **Off** is the fastest option.",
            "default": "full"
          },
          "newsLimit": {
            "title": "🔢 Max trends to enrich with news (0 = all)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "📉 Cap how many trends get the news treatment, per country. Lower = faster and cheaper. `0` means every trend that has articles.",
            "default": 25
          },
          "newsConcurrency": {
            "title": "⚡ Parallel news lookups",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many news lookups run at the same time. Higher = faster, but be gentle — Google throttles aggressive clients.",
            "default": 4
          },
          "includeRelatedTerms": {
            "title": "🔗 Include related search terms",
            "type": "boolean",
            "description": "Adds the full list of related queries people searched alongside the trend. Turn off for slimmer rows.",
            "default": true
          },
          "includeArticleIds": {
            "title": "🆔 Include raw article IDs",
            "type": "boolean",
            "description": "Adds Google's internal article identifiers for each trend. Mostly useful for advanced pipelines and de-duplication.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🌍 Proxy configuration",
            "type": "object",
            "description": "🌐 **Optional.** Default is **no proxy** — requests go straight to Google Trends. If Google rejects or blocks a request, the Actor automatically falls back to a **datacenter** proxy, then to a **residential** proxy (with 3 retries), and sticks with it for the rest of the run. Turn *Apify Proxy* on here only if you want to start from a proxy right away.",
            "default": {
              "useApifyProxy": false
            }
          },
          "maxConcurrency": {
            "title": "🚀 Countries collected in parallel",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many countries are collected at the same time. Only matters when you selected more than one country.",
            "default": 4
          },
          "maxRequestRetries": {
            "title": "🔁 Attempts per request",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "♻️ Total attempts before a request is given up on (`3` = one try plus two retries, with exponential backoff and jitter).",
            "default": 3
          },
          "pageLoadTimeoutSecs": {
            "title": "⌛ Request timeout (seconds)",
            "minimum": 30,
            "maximum": 300,
            "type": "integer",
            "description": "⏲️ How long to wait for Google to respond before treating a request as failed.",
            "default": 120
          },
          "requestsPerSecond": {
            "title": "🌊 Request rate ceiling (per second)",
            "minimum": 0.2,
            "maximum": 30,
            "type": "number",
            "description": "Global ceiling on outbound requests per second across the whole run. Lower values are gentler and get blocked far less often. Automatically reduced if Google starts throttling.",
            "default": 6
          },
          "requestDelaySeconds": {
            "title": "⏳ Extra pause between requests (seconds)",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Additional randomised pause added before each request. Use `0` to go as fast as the rate ceiling allows.",
            "default": 0.5
          },
          "debugLog": {
            "title": "🗣️ Verbose logging",
            "type": "boolean",
            "description": "📣 Adds DEBUG-level detail (per-request outcomes, retry timings, network fallbacks) to the run log.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}