{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Trends Scraper & Breakout Monitor",
    "description": "Google Trends scraper API for interest over time, regions, related queries, rising searches, Breakouts, and Trending Now. Export keyword snapshots or schedule watchlists that return only new signals—no Google account, API key, or browser.",
    "version": "1.0",
    "x-build-id": "99lTG5edyaupVUPHn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automa-flow~google-trends-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automa-flow-google-trends-monitor",
        "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/automa-flow~google-trends-monitor/runs": {
      "post": {
        "operationId": "runs-sync-automa-flow-google-trends-monitor",
        "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/automa-flow~google-trends-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-automa-flow-google-trends-monitor",
        "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": {
          "keywords": {
            "title": "Keywords",
            "maxItems": 200,
            "type": "array",
            "description": "Fast start: paste up to 200 search terms, one per line. Each term becomes its own independently scaled Google Trends group. Use Comparison groups below only when you need 2-5 keywords normalized against each other.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          },
          "queries": {
            "title": "Comparison groups (advanced)",
            "maxItems": 200,
            "type": "array",
            "description": "Optional groups of 1-5 keywords that Google normalizes together, making values inside a group directly comparable. Keywords in different groups are NOT comparable. externalId is echoed onto every result and never sent to Google. The combined limit with Keywords is 200 groups.",
            "items": {
              "type": "object",
              "required": [
                "keywords"
              ],
              "additionalProperties": false,
              "properties": {
                "keywords": {
                  "title": "Keywords",
                  "type": "array",
                  "description": "1-5 search terms compared against each other in one chart.",
                  "minItems": 1,
                  "maxItems": 5,
                  "items": {
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "externalId": {
                  "title": "Your external ID",
                  "type": "string",
                  "editor": "textfield",
                  "maxLength": 200,
                  "description": "Your own stable identifier for this group. Echoed back, never sent to Google."
                }
              }
            }
          },
          "geo": {
            "title": "Location",
            "type": "string",
            "description": "ISO code deciding which country or subregion Google measures, for example US, DE, GB, or a subregion such as US-CA. Leave empty for worldwide. Changing this changes the scaling basis, so values are not comparable across locations.",
            "default": "US"
          },
          "timeframe": {
            "title": "Timeframe",
            "enum": [
              "now 1-H",
              "now 4-H",
              "now 1-d",
              "now 7-d",
              "today 1-m",
              "today 3-m",
              "today 12-m",
              "today 5-y",
              "all"
            ],
            "type": "string",
            "description": "How far back Google measures. Google picks the bucket size from this (hourly, daily, weekly or monthly) and reports it on every row. Values are not comparable across different timeframes.",
            "default": "today 3-m"
          },
          "category": {
            "title": "Category",
            "minimum": 0,
            "type": "integer",
            "description": "Google Trends category ID to restrict the search to. 0 means all categories. Changing this changes the scaling basis.",
            "default": 0
          },
          "property": {
            "title": "Google property",
            "enum": [
              "web",
              "images",
              "news",
              "shopping",
              "youtube"
            ],
            "type": "string",
            "description": "Which Google search surface to measure. Values are not comparable across properties.",
            "default": "web"
          },
          "dataTypes": {
            "title": "Data to collect",
            "minItems": 1,
            "type": "array",
            "description": "Which datasets to fetch per group. Fewer data types means fewer requests, a faster run and a lower chance of being throttled. Related topics is deliberately not offered: Google currently answers that endpoint with an empty list for every keyword, and publishing it would report 'no related topics' everywhere.",
            "items": {
              "type": "string",
              "enum": [
                "interest_over_time",
                "related_queries",
                "interest_by_region",
                "trending_now"
              ],
              "enumTitles": [
                "Interest over time",
                "Related queries (top + rising + breakout)",
                "Interest by region",
                "Trending now (no keywords needed)"
              ]
            },
            "default": [
              "interest_over_time",
              "related_queries",
              "interest_by_region"
            ]
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "monitor",
              "snapshot"
            ],
            "type": "string",
            "description": "snapshot returns what Google says right now and stores nothing. monitor remembers the last successful check so later runs can report only what changed.",
            "default": "snapshot"
          },
          "outputMode": {
            "title": "Output",
            "enum": [
              "changesOnly",
              "all"
            ],
            "type": "string",
            "description": "changesOnly returns new and changed rising/breakout queries and new trending topics, plus a status row per group. all additionally returns every timeline point and region score. Timelines are measurements rather than events, so they are only returned by all.",
            "default": "all"
          },
          "trendingGeos": {
            "title": "Trending Now countries",
            "type": "array",
            "description": "Countries whose Trending Now feed to fetch, for example US, DE, JP. Only used when trending_now is selected above; defaults to the Location setting. Worldwide has no trending feed.",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z]{2}$"
            },
            "default": []
          },
          "monitorId": {
            "title": "Monitor ID",
            "maxLength": 64,
            "type": "string",
            "description": "Optional name separating independent monitoring histories in the same Apify account, for example 'seo-team' and 'ecommerce-team'. Leave empty unless you run several unrelated watchlists."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Required for keyword data. Google Trends rate-limits its data endpoints per IP address. Production verification showed four Residential sessions with automatic country selection receiving HTTP 429, while RESIDENTIAL with US country targeting succeeded immediately. RESIDENTIAL@US is therefore the reliability-first default. This setting is ignored by Trending Now-only runs because that public RSS feed needs no proxy.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}