{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper",
    "description": "Scrape Google News by keyword, topic or date range, past the 100-result limit. Get headlines, sources, dates, real publisher URLs and images as JSON, CSV or Excel, or via API, MCP or n8n. For news monitoring and alerts, brand tracking, market research, stock trading and AI agents.",
    "version": "0.0",
    "x-build-id": "DcIrXSzWIk2bquw18"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lhotanova~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lhotanova-google-news-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/lhotanova~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lhotanova-google-news-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/lhotanova~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lhotanova-google-news-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",
        "required": [
          "query",
          "language"
        ],
        "properties": {
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Enter search query as you would write it to Google News search bar. You can also use advanced search operators in your queries, such as 'intitle', 'site', exclude operator '-', exact match with double-quotes, 'AND', 'OR' and more. Example queries with advanced operators: 'site:forbes.com intitle:samsung', '\"samsung galaxy s25\" -ultra'. 'inurl' doesn't work on Google News, use 'site' instead. You may already know some of the operators from Google search or Apify's [Google Search Scraper](https://apify.com/apify/google-search-scraper). For more information, see [Google Guide on Search Operators](https://www.googleguide.com/advanced_operators_reference.html). Keep your query short. Google only reads about the first 32 words, and operators like 'OR' and words in quotes count too. Put filters like 'site:' at the start so they aren't cut off.",
            "default": ""
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Select topics you want to search for using 'https://news.google.com/topics/' search. Note that your search query will not be combined with the selected topics but will be used as a standalone search. If you want to search for news only in the selected topics, leave the 'Search query' field empty. Date filters are applied after the topic news are downloaded, because Google News can't filter topics by date. A topic only lists its latest news, so you may get fewer results, or none for an older date range.",
            "items": {
              "type": "string",
              "enum": [
                "WORLD",
                "NATION",
                "BUSINESS",
                "TECHNOLOGY",
                "ENTERTAINMENT",
                "SPORTS",
                "SCIENCE",
                "HEALTH"
              ],
              "enumTitles": [
                "World",
                "Nation",
                "Business",
                "Technology",
                "Entertainment",
                "Sports",
                "Science",
                "Health"
              ]
            },
            "default": []
          },
          "topicsHashed": {
            "title": "Topics (hashed)",
            "type": "array",
            "description": "Specify topics you want to search for using hashed topic URLs. This field is useful when you want to search for topics that are not available in the 'Topics' field. You can find hashed topic URLs in the URL of the topic page on 'https://news.google.com/topics/{TOPIC_HASH}'. The Actor also supports hashed sections URLs in the format 'https://news.google.com/topics/{TOPIC_HASH}/sections/{SECTION_HASH}'. For example, if you'd like to scrape the news from 'Technology' topic, section 'Artificial intelligence', you can use the following value (extracted from the section's URL): 'CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB/sections/CAQiQ0NCQVNMQW9JTDIwdk1EZGpNWFlTQW1WdUdnSlZVeUlOQ0FRYUNRb0hMMjB2TUcxcmVpb0pFZ2N2YlM4d2JXdDZLQUEqKggAKiYICiIgQ0JBU0Vnb0lMMjB2TURkak1YWVNBbVZ1R2dKVlV5Z0FQAVAB'. Note that your search query will not be combined with the topics but will be used as a standalone search. If you want to search for news only in the specified topics, leave the 'Search query' field empty. Date filters are applied after the topic news are downloaded, because Google News can't filter topics by date. A topic only lists its latest news, so you may get fewer results, or none for an older date range.",
            "items": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9]+(/sections/[a-zA-Z0-9]+)?$"
            },
            "default": []
          },
          "language": {
            "title": "Language and region",
            "enum": [
              "US:en",
              "SK:sk",
              "AU:en",
              "BW:en",
              "CA:en",
              "ET:en",
              "GH:en",
              "IN:en",
              "ID:en",
              "IE:en",
              "IL:en",
              "KE:en",
              "LV:en",
              "MY:en",
              "NA:en",
              "NZ:en",
              "NG:en",
              "PK:en",
              "PH:en",
              "SG:en",
              "ZA:en",
              "TZ:en",
              "UG:en",
              "GB:en",
              "ZW:en",
              "ID:id",
              "CZ:cs",
              "DE:de",
              "AT:de",
              "CH:de",
              "AR:es-419",
              "CL:es-419",
              "CO:es-419",
              "CU:es-419",
              "ES:es",
              "US:es-419",
              "MX:es-419",
              "PE:es-419",
              "VE:es-419",
              "BE:fr",
              "CA:fr",
              "FR:fr",
              "MA:fr",
              "SN:fr",
              "CH:fr",
              "IT:it",
              "LV:lv",
              "LT:lt",
              "HU:hu",
              "BE:nl",
              "NL:nl",
              "NO:no",
              "PL:pl",
              "BR:pt-419",
              "PT:pt-150",
              "RO:ro",
              "SI:sl",
              "SE:sv",
              "VN:vi",
              "TR:tr",
              "GR:el",
              "BG:bg",
              "RU:ru",
              "UA:ru",
              "RS:sr",
              "UA:uk",
              "IL:he",
              "AE:ar",
              "SA:ar",
              "LB:ar",
              "EG:ar",
              "IN:mr",
              "IN:hi",
              "BD:bn",
              "IN:bn",
              "IN:ta",
              "IN:te",
              "IN:ml",
              "TH:th",
              "CN:zh-Hans",
              "TW:zh-Hant",
              "HK:zh-Hant",
              "JP:ja",
              "KR:ko"
            ],
            "type": "string",
            "description": "Select your language and region pair.",
            "default": "US:en"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Set the maximum number of items you want to scrape. If you leave this field unset, the actor will extract all news available for your search criteria. With 90 or fewer, the scraper loads one search page of up to 100 news. With more, it also searches news day by day, newest first. With `Date from` set, it searches every day of your date range, or its last 1,000 days for a longer range. The run also stops early if it reaches the maximum cost per run set in the run options."
          },
          "fetchArticleDetails": {
            "title": "Resolved article URL",
            "type": "boolean",
            "description": "Resolve each Google News link to the article's URL on the publisher's site. Each result with a resolved URL is charged this add-on on top of the base price (see <a href=\"https://apify.com/lhotanova/google-news-scraper/pricing\" target=\"_blank\">Pricing</a>), and the run takes longer. Uncheck it if Google News links are enough, and the run will be faster and cheaper. Without it, the run also starts with 1 GB of memory instead of 4 GB, which cuts the start fee to a quarter.",
            "default": true
          },
          "fetchArticlePage": {
            "title": "Article page",
            "type": "boolean",
            "description": "Load each article page on the publisher's site to get its image. Each result whose page loads is charged this add-on on top of the base price (see <a href=\"https://apify.com/lhotanova/google-news-scraper/pricing\" target=\"_blank\">Pricing</a>). It needs Resolved article URL and is skipped without it. Uncheck it if the resolved article URLs are enough, and the run will be faster and cheaper. Without article pages, the run also starts with 2 GB of memory instead of 4 GB, which halves the start fee."
          },
          "dateFrom": {
            "title": "Date from (YYYY-MM-DD)",
            "pattern": "\\d{4}-\\d{2}-\\d{2}",
            "type": "string",
            "description": "Set the starting date. Only the news published on this or newer date will be scraped. If `Open-ended date range` field is set, `Date from` and `Date to` fields will be ignored."
          },
          "dateTo": {
            "title": "Date to (YYYY-MM-DD)",
            "pattern": "\\d{4}-\\d{2}-\\d{2}",
            "type": "string",
            "description": "Set the finish date. Only the news published on this date or before will be scraped. If `Open-ended date range` field is set, `Date from` and `Date to` fields will be ignored."
          },
          "openEndedDateRange": {
            "title": "Open-ended date range",
            "pattern": "^\\d+[hdy]$",
            "type": "string",
            "description": "Set the open-ended date range such as '1h' to scrape news published in the last hour, '2d' for the last two days, or '1y' for the last year. Use a whole number followed by 'h', 'd' or 'y' to specify the time range. If you set this field, the `Date from` and `Date to` fields will be ignored."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}