{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Monitor: Keyword & Topic Alerts via RSS",
    "description": "Monitor public Google News RSS feeds for keywords, topics and places in 71 countries and 40 languages. Boolean and site: queries, time ranges, an alert mode that returns only new articles on scheduled runs, optional publisher URLs. Unofficial, not affiliated with Google. $1.50 per 1,000 articles.",
    "version": "1.1",
    "x-build-id": "MeDea9wSAX5fZehkM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fairfetch~google-news-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fairfetch-google-news-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/fairfetch~google-news-monitor/runs": {
      "post": {
        "operationId": "runs-sync-fairfetch-google-news-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/fairfetch~google-news-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-fairfetch-google-news-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": {
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "One Google News search per line. Google News operators work: \"exact phrase\", OR, -exclude, site:reuters.com, intitle:word. Each query returns at most about 100 articles per feed (see \"Split long time ranges by day\" to get more).",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topics (Google News sections)",
            "type": "array",
            "description": "Google News section feeds for the selected country and language. Top stories and each section return about 35 to 90 current articles. Sections ignore the search operators; the time range is applied after download.",
            "items": {
              "type": "string",
              "enum": [
                "TOP_STORIES",
                "WORLD",
                "NATION",
                "BUSINESS",
                "TECHNOLOGY",
                "ENTERTAINMENT",
                "SPORTS",
                "SCIENCE",
                "HEALTH"
              ],
              "enumTitles": [
                "Top stories",
                "World",
                "Nation (national news of the selected country)",
                "Business",
                "Technology",
                "Entertainment",
                "Sports",
                "Science",
                "Health"
              ]
            }
          },
          "locations": {
            "title": "Local news (places)",
            "type": "array",
            "description": "Google News local-news feeds for cities, regions or countries, one per line (e.g. London, Austin Texas, Bavaria).",
            "items": {
              "type": "string"
            }
          },
          "feedUrls": {
            "title": "Google News URLs",
            "type": "array",
            "description": "Optional. Paste any news.google.com search, topic or section URL (for example a company or person topic page). It is converted to its RSS feed. Its own hl/gl/ceid parameters are kept; otherwise the country and language below are used. A google.com News-tab search URL (…/search?q=…&tbm=nws) is turned into a search query. Any other URL is reported as a free error row and the other entries still run.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country (Google News edition)",
            "enum": [
              "US",
              "GB",
              "IN",
              "CA",
              "AU",
              "AR",
              "AT",
              "BD",
              "BE",
              "BW",
              "BR",
              "BG",
              "CL",
              "CN",
              "CO",
              "CU",
              "CZ",
              "EG",
              "ET",
              "FI",
              "FR",
              "DE",
              "GH",
              "GR",
              "HK",
              "HU",
              "ID",
              "IE",
              "IL",
              "IT",
              "JP",
              "KE",
              "LV",
              "LB",
              "LT",
              "MY",
              "MX",
              "MA",
              "NA",
              "NL",
              "NZ",
              "NG",
              "NO",
              "PK",
              "PE",
              "PH",
              "PL",
              "PT",
              "RO",
              "RU",
              "SA",
              "SN",
              "RS",
              "SG",
              "SK",
              "SI",
              "ZA",
              "KR",
              "ES",
              "SE",
              "CH",
              "TW",
              "TZ",
              "TH",
              "TR",
              "UG",
              "UA",
              "AE",
              "VE",
              "VN",
              "ZW"
            ],
            "type": "string",
            "description": "Which country edition of Google News to read. It decides the ranking and local sources.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "enum": [
              "auto",
              "ar",
              "bn",
              "bg",
              "zh",
              "cs",
              "nl",
              "en",
              "fi",
              "fr",
              "de",
              "el",
              "gu",
              "he",
              "hi",
              "hu",
              "id",
              "it",
              "ja",
              "ko",
              "lv",
              "lt",
              "ms",
              "ml",
              "mr",
              "no",
              "pl",
              "pt",
              "ro",
              "ru",
              "sr",
              "sk",
              "sl",
              "es",
              "sv",
              "ta",
              "te",
              "th",
              "tr",
              "uk",
              "vi"
            ],
            "type": "string",
            "description": "News language. \"Auto\" picks the country's main Google News language. If the country has no edition in the chosen language (e.g. Germany + English), the country's main language is used and the run summary says so.",
            "default": "auto"
          },
          "timeRange": {
            "title": "Time range",
            "enum": [
              "any",
              "1h",
              "1d",
              "7d",
              "30d"
            ],
            "type": "string",
            "description": "Only articles published within this period before the run. Added to search queries as Google's when: operator and checked again on every article's publish date.",
            "default": "7d"
          },
          "dateFrom": {
            "title": "From date (optional)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}",
            "type": "string",
            "description": "Custom date range start (UTC day, inclusive). Overrides \"Time range\". Uses Google's after:/before: operators."
          },
          "dateTo": {
            "title": "To date (optional)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}",
            "type": "string",
            "description": "Custom date range end (UTC day, inclusive). Leave empty for \"until now\"."
          },
          "splitByDay": {
            "title": "Split long time ranges by day (get more than 100 articles)",
            "type": "boolean",
            "description": "Google returns at most about 100 articles per feed. With this on, search queries with a 24-hour, 7-day, 30-day or custom date range are fetched as one feed per day (newest day first), so busy topics can return up to about 100 articles per day. Uses one extra request per day; it stops as soon as \"Max articles per query\" is reached.",
            "default": false
          },
          "maxArticlesPerQuery": {
            "title": "Max articles per query",
            "minimum": 0,
            "maximum": 20000,
            "type": "integer",
            "description": "Maximum articles returned (and charged) per query, topic, place or URL. 0 = no limit (all articles Google returns, about 100 per feed).",
            "default": 100
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "newest",
              "relevance"
            ],
            "type": "string",
            "description": "\"Newest first\" sorts by publish date before \"Max articles per query\" is applied. \"Google relevance\" keeps Google's ranking.",
            "default": "newest"
          },
          "onlyNew": {
            "title": "Only new articles (alert mode)",
            "type": "boolean",
            "description": "Remember which articles each query has returned (as short hashes, in a named key-value store in your account) and return only articles not returned before. Schedule the Actor (e.g. hourly or daily) to get an alert feed and pay only for new articles. The first run returns the current articles. An article is remembered until it has been missing from its feed for 180 days.",
            "default": false
          },
          "trackingId": {
            "title": "Tracking ID (optional)",
            "pattern": "^[A-Za-z0-9_-]{1,60}$",
            "type": "string",
            "description": "Name of the alert memory used by \"Only new articles\". Leave empty and each saved task gets its own memory (a run without a task gets one per set of queries + country/language). Use the same ID to share a memory, or to keep it when you edit the query list. Monitors that ran before version 1.1 without an ID keep what they already received. Letters, numbers, dashes and underscores."
          },
          "deduplicate": {
            "title": "Remove duplicates across queries",
            "type": "boolean",
            "description": "Return each article once per run, under the first query that found it (and, in alert mode, not again under another query later).",
            "default": true
          },
          "resolvePublisherUrls": {
            "title": "Resolve publisher URLs (best effort, slower)",
            "type": "boolean",
            "description": "Google News RSS links point to news.google.com. With this on, the Actor also tries to decode each link to the publisher's article URL (publisherUrl). It uses an undocumented Google News web endpoint that can change or stop working at any time: if decoding fails, the article is still returned with its Google News link and publisherUrl empty, and the run never fails because of it. Adds about 1 request per article (roughly 1 to 3 seconds per 10 articles).",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Upper limit of simultaneous requests to Google News. Keep it low to stay polite and avoid rate limits.",
            "default": 3
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Timeout for a single HTTP request.",
            "default": 30
          },
          "maxRetries": {
            "title": "Max retries per request",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Retries for network errors, HTTP 429 and 5xx responses (exponential backoff, honours Retry-After).",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed normally: requests go out directly, and if Google blocks a run on the Apify platform the Actor switches to Apify's datacenter proxy by itself. You can also choose Apify Proxy (datacenter) or your own proxy URLs. Residential and Google SERP proxy groups are not supported: a run that selects them stops with \"Invalid input\" and no articles are charged (only the standard Actor start event). Apify Proxy use is included in the price.",
            "default": {
              "useApifyProxy": 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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}