{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper & API ($1/1k) 📰",
    "description": "⚡ Fast & Affordable ($1/1k): Scrape Google News articles, direct publisher URLs, headlines, snippets, thumbnails, timestamps, topic feeds & optional clean full-article text across 35+ countries and languages. Ready for RAG, AI & Excel/CSV.",
    "version": "1.0",
    "x-build-id": "qoLe0w3UCHN2LBXQg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unitbytes~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unitbytes-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/unitbytes~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unitbytes-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/unitbytes~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unitbytes-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 (Keywords or Google News URLs)",
            "type": "array",
            "description": "Keywords, company names, tickers, or Google News search URLs to scrape (e.g. 'Artificial Intelligence', 'NVIDIA earnings', 'renewable energy'). Supports multiple queries in one run with automatic cross-query deduplication.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topic Feeds (Optional)",
            "type": "array",
            "description": "Google News curated section feeds to collect: 'TOP_HEADLINES', 'WORLD', 'NATION', 'BUSINESS', 'TECHNOLOGY', 'ENTERTAINMENT', 'SPORTS', 'SCIENCE', 'HEALTH'. Leave empty when searching only by keywords.",
            "items": {
              "type": "string"
            }
          },
          "domains": {
            "title": "Publisher Domains Filter (Optional)",
            "type": "array",
            "description": "Restrict results to specific news outlets or domains (e.g. 'reuters.com', 'techcrunch.com', 'bbc.com'). Applied server-side via Google's site filter.",
            "items": {
              "type": "string"
            }
          },
          "exactPhrase": {
            "title": "Exact Phrase Match (Optional)",
            "type": "string",
            "description": "Require this exact multi-word phrase to appear in matching news stories (e.g. 'interest rate cut')."
          },
          "excludeWords": {
            "title": "Exclude Words (Optional)",
            "type": "array",
            "description": "Exclude stories containing any of these words or phrases (applied server-side via '-word').",
            "items": {
              "type": "string"
            }
          },
          "timeRange": {
            "title": "Time Range Filter",
            "enum": [
              "any",
              "1h",
              "24h",
              "7d",
              "30d",
              "1y"
            ],
            "type": "string",
            "description": "Filter articles by publication recency on Google's servers.",
            "default": "any"
          },
          "dateFrom": {
            "title": "Start Date — YYYY-MM-DD (Optional)",
            "type": "string",
            "description": "Custom start date in YYYY-MM-DD format (e.g. '2026-11-01'). Overrides Time Range when set."
          },
          "dateTo": {
            "title": "End Date — YYYY-MM-DD (Optional)",
            "type": "string",
            "description": "Custom end date in YYYY-MM-DD format (e.g. '2026-11-12'). Overrides Time Range when set."
          },
          "sortBy": {
            "title": "Sort Order",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Sort results by editorial relevance or newest publication timestamp first.",
            "default": "relevance"
          },
          "country": {
            "title": "Country / Edition",
            "type": "string",
            "description": "Two-letter ISO country code for Google News edition localization (e.g. 'us', 'gb', 'de', 'fr', 'es', 'it', 'nl', 'ca', 'au', 'in', 'sg', 'jp', 'kr', 'br', 'mx'). Common names like 'USA' or 'UK' are normalized automatically.",
            "default": "us"
          },
          "language": {
            "title": "Language (Optional)",
            "type": "string",
            "description": "ISO language code (e.g. 'en', 'de', 'fr', 'es', 'pt', 'ja'). Recommended: leave empty so Google automatically uses the natural language of the selected country."
          },
          "feedMode": {
            "title": "Source Engine Mode",
            "enum": [
              "auto",
              "search",
              "rss"
            ],
            "type": "string",
            "description": "Choose 'auto' (recommended: Google Search News with direct publisher URLs, snippets, thumbnails & deep pagination) or 'rss' (fast Google News RSS feed with related coverage clusters).",
            "default": "auto"
          },
          "extractArticleContent": {
            "title": "Extract Full Article Text & Metadata (RAG / AI Mode)",
            "type": "boolean",
            "description": "When enabled, visits each publisher URL to extract clean plain-text body paragraphs (`articleText`), `wordCount`, `author`, high-resolution `og:image`, and exact `publishedDateIso`.",
            "default": false
          },
          "decodeRssUrls": {
            "title": "Resolve Direct Publisher URLs in RSS Mode",
            "type": "boolean",
            "description": "When using Topic Feeds or RSS Mode, resolves `news.google.com/rss/articles/...` wrapper links into final canonical publisher URLs. Automatically enabled when Extract Full Article Text is turned on.",
            "default": false
          },
          "maxArticles": {
            "title": "Max Articles Limit (Budget Cap)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of unique news articles to collect across all queries and topics. Extraction stops immediately once this cap is reached.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration (Optional)",
            "type": "object",
            "description": "Optional proxy settings. Leave at default to use automatic managed routing, or provide custom proxy URLs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}