{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper: Articles by Keyword, Topic & Country",
    "description": "Get news articles by keyword, country and language, with publisher names, timestamps, snippets, thumbnails and publisher links when available. Keyword searches fall back to the Google News tab. Includes date filters, paging and optional public article text.",
    "version": "0.3",
    "x-build-id": "tRNTv4Y49NgnFRrQD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zaiq~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zaiq-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/zaiq~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zaiq-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/zaiq~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zaiq-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": "Searches",
            "type": "array",
            "description": "Up to 30 keyword searches. Quotes and search operators are accepted. Empty searches select topic/top stories, which require news.google.com and can return a free unavailable-source note.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country edition",
            "type": "string",
            "description": "Two-letter country of the Google News edition, e.g. US, GB, IN, ZA, DE, FR, BR.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language of the edition, e.g. en, de, fr, es, pt, hi.",
            "default": "en"
          },
          "period": {
            "title": "Published in the last",
            "enum": [
              "any",
              "hour",
              "day",
              "week",
              "month",
              "year"
            ],
            "type": "string",
            "description": "Relative publish window. Keyword fallback uses Google News-tab date filters; source timestamps are also checked. Topic filters apply only to the current feed.",
            "default": "any"
          },
          "topic": {
            "title": "Topic (when no searches)",
            "enum": [
              "top",
              "world",
              "nation",
              "business",
              "technology",
              "entertainment",
              "sports",
              "science",
              "health"
            ],
            "type": "string",
            "description": "Used only when Searches is empty. Topics and top stories require news.google.com; there is no News-tab substitute. A refused feed returns a free note.",
            "default": "top"
          },
          "site": {
            "title": "Only from this site",
            "type": "string",
            "description": "Optional publisher domain such as example.com. Requires a keyword query."
          },
          "maxPerQuery": {
            "title": "Maximum articles per search",
            "minimum": 5,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum articles per keyword or topic, from 1 to 100. Default 10. News-tab searches page as needed; RSS feeds contain at most 100 items. At least 5.",
            "default": 10
          },
          "resolveLinks": {
            "title": "Real article links",
            "type": "boolean",
            "description": "Include publisher link resolution in the article price. Direct links need no extra fetch; opaque Google redirect links are followed. Unresolved links keep their Google URL and an explanation.",
            "default": true
          },
          "when": {
            "title": "Custom relative window",
            "type": "string",
            "description": "Optional 1h, 1d, 7d or similar window. Overrides period. A when: prefix is accepted."
          },
          "after": {
            "title": "Published on or after",
            "type": "string",
            "description": "Optional inclusive UTC date in YYYY-MM-DD form. Narrow an interval without claiming a complete news archive."
          },
          "before": {
            "title": "Published before",
            "type": "string",
            "description": "Optional exclusive UTC date in YYYY-MM-DD form. Must be later than after."
          },
          "includeArticleText": {
            "title": "Read public article text",
            "type": "boolean",
            "description": "Fetch public publisher text, snippet, image and authors through the crawler. An article with text costs $0.02 total; unavailable text falls back to the $0.002 listing. No login, paywall bypass, browser or AI.",
            "default": false
          },
          "maxArticles": {
            "title": "Maximum articles per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Total article rows across all queries, including already delivered rows after a restart.",
            "default": 100
          },
          "maxTextChars": {
            "title": "Maximum article text characters",
            "minimum": 1000,
            "maximum": 200000,
            "type": "integer",
            "description": "Maximum text characters per article. Truncation is marked in the row.",
            "default": 50000
          },
          "maxRelated": {
            "title": "Maximum related headlines",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Up to 30 related headlines supplied by RSS. The News-tab source provides cluster IDs where present; its article rows do not fabricate a related-headlines list.",
            "default": 10
          },
          "sortBy": {
            "title": "Article order",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Source order, or newest first. News-tab searches request date order and each returned page is sorted by timestamp. RSS sorts only its returned feed.",
            "default": "relevance"
          },
          "maxPages": {
            "title": "Maximum News-tab pages per search",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Page limit for the keyword fallback. Stops sooner when the article limit, spending limit, final page or repeated page is reached. Does not add paging to RSS topics.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}