{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper & API — Headlines, Topics & Local News",
    "description": "Google News scraper and API for top headlines, topic sections and local news in 50+ editions: the real publisher URL on every article, source, publish time and image, plus new-only monitoring. Pay per article plus a small start fee, no platform fees.",
    "version": "1.0",
    "x-build-id": "wWLXgEgXvyL304GSG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/aaronoptimus~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-aaronoptimus-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/aaronoptimus~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-aaronoptimus-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/aaronoptimus~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-aaronoptimus-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",
        "properties": {
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Google News topic sections, read once per edition. TOP_STORIES is the front page. Each section lists up to about 100 articles.",
            "items": {
              "type": "string",
              "enum": [
                "TOP_STORIES",
                "WORLD",
                "NATION",
                "BUSINESS",
                "TECHNOLOGY",
                "ENTERTAINMENT",
                "SPORTS",
                "SCIENCE",
                "HEALTH"
              ],
              "enumTitles": [
                "Top stories (front page)",
                "World",
                "Nation (your country)",
                "Business",
                "Technology",
                "Entertainment",
                "Sports",
                "Science",
                "Health"
              ]
            }
          },
          "locations": {
            "title": "Local news (places)",
            "type": "array",
            "description": "Towns, cities, states or countries for Google News local headlines, e.g. Austin, Manchester, Bavaria. One per line.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Google News URLs",
            "type": "array",
            "description": "Links copied from news.google.com: topic pages, publication pages, local pages or \"Full coverage\" story pages. The edition in the link (ceid=...) is kept. RSS feed links are read as the matching web page. Search links and single-article links are not supported.",
            "items": {
              "type": "string"
            }
          },
          "editions": {
            "title": "Editions (country and language)",
            "type": "array",
            "description": "Which Google News editions to read. Each topic and place is read once per edition. Default: United States (English).",
            "items": {
              "type": "string",
              "enum": [
                "US:en",
                "GB:en",
                "CA:en",
                "CA:fr",
                "AU:en",
                "NZ:en",
                "IE:en",
                "IN:en",
                "IN:hi",
                "SG:en",
                "MY:en",
                "PH:en",
                "PK:en",
                "ZA:en",
                "NG:en",
                "KE:en",
                "IL:en",
                "DE:de",
                "AT:de",
                "CH:de",
                "FR:fr",
                "BE:fr",
                "BE:nl",
                "NL:nl",
                "ES:es",
                "MX:es-419",
                "AR:es-419",
                "CO:es-419",
                "CL:es-419",
                "PE:es-419",
                "US:es-419",
                "BR:pt-419",
                "PT:pt-150",
                "IT:it",
                "PL:pl",
                "CZ:cs",
                "SE:sv",
                "NO:no",
                "RU:ru",
                "UA:uk",
                "TR:tr",
                "IL:he",
                "AE:ar",
                "SA:ar",
                "EG:ar",
                "JP:ja",
                "KR:ko",
                "TW:zh-Hant",
                "HK:zh-Hant",
                "CN:zh-Hans",
                "ID:id",
                "TH:th",
                "VN:vi"
              ],
              "enumTitles": [
                "United States (English)",
                "United Kingdom (English)",
                "Canada (English)",
                "Canada (French)",
                "Australia (English)",
                "New Zealand (English)",
                "Ireland (English)",
                "India (English)",
                "India (Hindi)",
                "Singapore (English)",
                "Malaysia (English)",
                "Philippines (English)",
                "Pakistan (English)",
                "South Africa (English)",
                "Nigeria (English)",
                "Kenya (English)",
                "Israel (English)",
                "Germany (German)",
                "Austria (German)",
                "Switzerland (German)",
                "France (French)",
                "Belgium (French)",
                "Belgium (Dutch)",
                "Netherlands (Dutch)",
                "Spain (Spanish)",
                "Mexico (Spanish)",
                "Argentina (Spanish)",
                "Colombia (Spanish)",
                "Chile (Spanish)",
                "Peru (Spanish)",
                "United States (Spanish)",
                "Brazil (Portuguese)",
                "Portugal (Portuguese)",
                "Italy (Italian)",
                "Poland (Polish)",
                "Czechia (Czech)",
                "Sweden (Swedish)",
                "Norway (Norwegian)",
                "Russia (Russian)",
                "Ukraine (Ukrainian)",
                "Turkey (Turkish)",
                "Israel (Hebrew)",
                "United Arab Emirates (Arabic)",
                "Saudi Arabia (Arabic)",
                "Egypt (Arabic)",
                "Japan (Japanese)",
                "South Korea (Korean)",
                "Taiwan (Chinese)",
                "Hong Kong (Chinese)",
                "China (Chinese)",
                "Indonesia (Indonesian)",
                "Thailand (Thai)",
                "Vietnam (Vietnamese)"
              ]
            },
            "default": [
              "US:en"
            ]
          },
          "timeRange": {
            "title": "Time range",
            "enum": [
              "any",
              "1h",
              "1d",
              "7d",
              "30d",
              "1y"
            ],
            "type": "string",
            "description": "Only articles published within this time, judged by each article's publish time. Ignored when dates are set.",
            "default": "any"
          },
          "dateFrom": {
            "title": "From date",
            "type": "string",
            "description": "Only articles published on or after this day (YYYY-MM-DD). Google News pages show what is listed now, so this filters by publish time; it can't reach back in time."
          },
          "dateTo": {
            "title": "To date",
            "type": "string",
            "description": "Only articles published on or before this day (YYYY-MM-DD, inclusive)."
          },
          "maxArticlesPerSource": {
            "title": "Max articles per source",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Upper limit per topic, place or URL in each edition. Google lists up to about 100 articles per page.",
            "default": 100
          },
          "maxArticles": {
            "title": "Max articles in total",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Upper limit for the whole run. 0 = no limit. You can also set a maximum cost per run in the run options.",
            "default": 0
          },
          "deduplicate": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Deliver each article once per run, even if several topics, places or editions list it. Duplicates are never charged. Turn off to get the full list for every source.",
            "default": true
          },
          "onlyNewArticles": {
            "title": "Only new articles (monitoring)",
            "type": "boolean",
            "description": "Skip articles this monitor already delivered in earlier runs, so a scheduled run returns only what is new. Skipped articles are free. Articles are remembered for 120 days in a key-value store on your account named google-news-monitor-<monitor name>.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Keeps separate memories for different schedules, e.g. brand-a or competitors. Letters, digits and dashes. Default: default."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) is used by default. Refused pages are retried from new IPs automatically.",
            "default": {
              "useApifyProxy": true
            }
          },
          "useResidentialFallback": {
            "title": "Retry refused pages on residential IPs",
            "type": "boolean",
            "description": "Google News sometimes refuses pages from datacenter IPs. When a page is refused twice, it's retried through Apify's residential proxy, and later pages of the same kind go there straight away. Your price per article doesn't change. Turn off to use only the proxy above.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel pages",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many Google News pages to read at the same time.",
            "default": 4
          },
          "maxRetries": {
            "title": "Retries per page",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many times a refused page is retried from a new IP before it is reported as failed (failed pages are free).",
            "default": 6
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}