{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper: Full Text, Topics, Alerts — $4.5/1k",
    "description": "Scrape Google News by keyword, topic, publisher or URL: real article URLs, ISO dates, sources, optional full article text, time ranges, 100+ locales, bulk query import, dedupe and a monitor mode that returns only new articles. No login or cookies. MCP-ready for AI agents. $4.5 per 1,000 records.",
    "version": "1.0",
    "x-build-id": "Nr5BtFdJr3w9PUdeZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fortuitous_pirate~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fortuitous_pirate-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/fortuitous_pirate~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fortuitous_pirate-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/fortuitous_pirate~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fortuitous_pirate-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": {
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "One Google News search per line. Google operators work: \"exact phrase\", OR, -exclude, site:reuters.com, intitle:. A topic name (BUSINESS) or a news.google.com URL pasted here is routed automatically.",
            "items": {
              "type": "string"
            }
          },
          "listUrl": {
            "title": "Import queries (CSV, TXT or Google Sheet link)",
            "type": "string",
            "description": "Link to a CSV/TXT file or a Google Sheet shared as 'anyone with the link'. The first column of each row is read (a header row like 'query' is skipped). Use it for hundreds of brands or keywords."
          },
          "startUrls": {
            "title": "Google News URLs",
            "type": "array",
            "description": "Any news.google.com page: a search, a topic (/topics/...), a topic section, a local-news page (/headlines/section/geo/...), a 'Full coverage' story (/stories/...), the front page, or an /rss/ feed. Publication pages have no feed; use the publishers filter instead.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Google News sections to scrape in addition to (or instead of) searches.",
            "items": {
              "type": "string",
              "enum": [
                "TOP",
                "WORLD",
                "NATION",
                "BUSINESS",
                "TECHNOLOGY",
                "ENTERTAINMENT",
                "SPORTS",
                "SCIENCE",
                "HEALTH"
              ],
              "enumTitles": [
                "Top stories",
                "World",
                "Nation",
                "Business",
                "Technology",
                "Entertainment",
                "Sports",
                "Science",
                "Health"
              ]
            }
          },
          "publications": {
            "title": "Publishers (domains)",
            "type": "array",
            "description": "Only return articles from these publisher domains, e.g. reuters.com, bbc.co.uk. Applied to every search query (site: operator). With no query it returns the publisher's latest articles.",
            "items": {
              "type": "string"
            }
          },
          "excludeWords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Articles containing these words are left out of every search (Google's -word operator).",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google News language code: en, de, fr, es, es-419, pt-BR, ja, hi… A combined token like DE:de also works.",
            "default": "en"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Google News edition (country code): US, GB, DE, FR, IN, BR, JP, AU…",
            "default": "US"
          },
          "timeRange": {
            "title": "Time range",
            "enum": [
              "any",
              "1h",
              "1d",
              "7d",
              "30d",
              "1y",
              "custom"
            ],
            "type": "string",
            "description": "How far back the search goes. 'Custom' uses Date from / Date to. Topic and URL feeds always return Google's current selection; the dates still filter them.",
            "default": "any"
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "YYYY-MM-DD. Oldest publication date to include. Past ranges work (Google's after: operator)."
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "YYYY-MM-DD. Newest publication date to include."
          },
          "publishedAfter": {
            "title": "Published after (exact time)",
            "type": "string",
            "description": "ISO 8601 date-time, e.g. 2026-10-21T08:00:00Z. Only articles published at or after this instant are returned; handy for hourly schedules."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Google orders results by relevance. 'Newest first' sorts each query's results by publication time before the limits apply.",
            "default": "relevance"
          },
          "maxItems": {
            "title": "Max articles (total)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many articles across all queries and topics.",
            "default": 10
          },
          "maxItemsPerQuery": {
            "title": "Max articles per query",
            "minimum": 0,
            "type": "integer",
            "description": "Cap per search, topic or URL. Google serves about 100 per search; asking for more with a time range of 7 days or longer makes the actor search day by day, newest first. 0 = no per-query cap.",
            "default": 100
          },
          "resolveUrls": {
            "title": "Resolve real article URLs",
            "type": "boolean",
            "description": "Decode Google's redirect links into the publisher's article URL (url field). Free; one extra request per article.",
            "default": true
          },
          "includeArticleContent": {
            "title": "Fetch full article text",
            "type": "boolean",
            "description": "Open each article and extract the readable text, author, excerpt, lead image and site name. Charged per article with text ('Article content' event); paywalled or blocked pages are not charged.",
            "default": false
          },
          "dedupeByUrl": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Return each article once even when several queries or topics match it.",
            "default": true
          },
          "onlyNew": {
            "title": "Monitor: return only new articles",
            "type": "boolean",
            "description": "Remembers every article seen in earlier runs with the same Monitor ID and returns only articles that are new since then. Schedule it hourly or daily for alerts. The first run returns the current articles.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Name for the monitor's memory. Use one ID per brand list or schedule.",
            "default": "default"
          },
          "firstRunBaseline": {
            "title": "Monitor: first run records a baseline only",
            "type": "boolean",
            "description": "With 'only new', the first run stores the current articles and returns nothing, so the first alert contains only articles that appeared after setup.",
            "default": false
          },
          "webhookUrl": {
            "title": "Webhook URL for new articles",
            "type": "string",
            "description": "Monitor mode only: when new articles are found, a JSON payload with them is POSTed to this URL (Slack, Make, n8n, Zapier catch hook…)."
          },
          "searchQueries": {
            "title": "Search queries (legacy name)",
            "type": "array",
            "description": "Same as 'Search queries'; kept for existing tasks and API calls.",
            "items": {
              "type": "string"
            }
          },
          "topic": {
            "title": "Topic (legacy single value)",
            "enum": [
              "",
              "TOP",
              "WORLD",
              "NATION",
              "BUSINESS",
              "TECHNOLOGY",
              "ENTERTAINMENT",
              "SPORTS",
              "SCIENCE",
              "HEALTH"
            ],
            "type": "string",
            "description": "Same as 'Topics'; kept for existing tasks.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Google News feeds and link decoding work without a proxy; set one only if your runs get rate-limited."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}