{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper: Articles, Publishers & Real Links",
    "description": "Search Google News by keyword, topic or publisher across 91 country/language editions. Headlines, publishers and publish dates, with optional resolution of every article to the publisher's own URL instead of a redirect token.",
    "version": "0.0",
    "x-build-id": "amzic5ypYtaaezZJw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/arman-bd~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-arman-bd-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/arman-bd~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-arman-bd-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/arman-bd~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-arman-bd-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": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "What you would type into Google News. Operators work: \"quoted phrases\", site:reuters.com, intitle:merger, -exclude, OR. Each query is searched independently, so two queries cost roughly twice one.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topic feeds",
            "type": "array",
            "description": "Standing Google News sections. These are fetched on their own and are not combined with your queries, because a section feed takes no search terms. A section is one feed holding roughly the last day or two, so it cannot be split into date windows and a date range is applied to its articles after the feed is read rather than narrowing what comes back.",
            "items": {
              "type": "string",
              "enum": [
                "WORLD",
                "BUSINESS",
                "TECHNOLOGY",
                "ENTERTAINMENT",
                "SPORTS",
                "SCIENCE",
                "HEALTH"
              ],
              "enumTitles": [
                "World",
                "Business",
                "Technology",
                "Entertainment",
                "Sports",
                "Science",
                "Health"
              ]
            },
            "default": []
          },
          "publishers": {
            "title": "Restrict to publishers",
            "type": "array",
            "description": "Domains such as reuters.com or ft.com. Applied as a site restriction on top of each query, so it narrows a search rather than replacing it. Given on their own, with no queries, each domain becomes its own search.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "edition": {
            "title": "Edition (country and language)",
            "enum": [
              "US:en",
              "AE:ar",
              "AE:en",
              "AR:es-419",
              "AT:de",
              "AU:en",
              "BD:bn",
              "BE:fr",
              "BE:nl",
              "BG:bg",
              "BR:pt-419",
              "BW:en",
              "CA:en",
              "CA:fr",
              "CH:de",
              "CH:fr",
              "CH:it",
              "CL:es-419",
              "CN:zh-Hans",
              "CO:es-419",
              "CU:es-419",
              "CZ:cs",
              "DE:de",
              "EE:et",
              "EG:ar",
              "ES:es",
              "ET:en",
              "FI:fi",
              "FR:fr",
              "GB:en",
              "GH:en",
              "GR:el",
              "HK:zh-Hant",
              "HU:hu",
              "ID:en",
              "ID:id",
              "IE:en",
              "IL:en",
              "IL:he",
              "IN:bn",
              "IN:en",
              "IN:gu",
              "IN:hi",
              "IN:ml",
              "IN:mr",
              "IN:pa",
              "IN:ta",
              "IN:te",
              "IT:it",
              "JP:ja",
              "KE:en",
              "KR:ko",
              "LB:ar",
              "LT:lt",
              "LV:lv",
              "MA:ar",
              "MA:fr",
              "MX:es-419",
              "MY:en",
              "MY:ms",
              "NA:en",
              "NG:en",
              "NL:nl",
              "NO:no",
              "NZ:en",
              "PE:es-419",
              "PH:en",
              "PK:en",
              "PL:pl",
              "PT:pt-150",
              "RO:ro",
              "RS:sr",
              "RU:ru",
              "SA:ar",
              "SE:sv",
              "SG:en",
              "SI:sl",
              "SK:sk",
              "SN:fr",
              "TH:th",
              "TR:tr",
              "TW:zh-Hant",
              "TZ:en",
              "UA:ru",
              "UA:uk",
              "UG:en",
              "US:es-419",
              "VE:es-419",
              "VN:vi",
              "ZA:en",
              "ZW:en"
            ],
            "type": "string",
            "description": "Which national edition of Google News to read. Country and language are set together from this one value: supplied separately they can contradict each other, and a contradictory pair silently returns US English. 91 editions are available.",
            "default": "US:en"
          },
          "maxItemsPerQuery": {
            "title": "Max articles per query",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on articles returned for each query. One feed request tops out near 100; above that the run splits your date range into windows and requests each, which costs proportionally more time. Topic sections cannot be split that way and stay at one feed. This is the main cost control, since charging is per article.",
            "default": 100
          },
          "dateFrom": {
            "title": "Published after",
            "type": "string",
            "description": "Oldest article to return. Absolute as 2026-01-15, or relative as \"7 days\", \"36 hours\", \"3 months\"."
          },
          "dateTo": {
            "title": "Published before",
            "type": "string",
            "description": "Newest article to return, in the same formats. Ignored unless \"Published after\" is also set, because the source needs a start to bound a range."
          },
          "resolvePublisherUrl": {
            "title": "Resolve the publisher URL",
            "type": "boolean",
            "description": "Return the publisher's own article link instead of the Google redirect token. Costs two extra requests per article, is charged separately, and is off by default so a cheap run stays cheap. Articles that cannot be resolved still ship, flagged urlResolved: false, and are not charged for the attempt.",
            "default": false
          },
          "includeArticleMetadata": {
            "title": "Fetch summary and image",
            "type": "boolean",
            "description": "Read each article's own page for its summary and lead image. The news feed carries neither, so this is the only way to get them: snippet and thumbnailUrl stay null without it. Needs the publisher URL, so it switches URL resolution on, adds a third request per article, and is charged separately. Publisher summaries are often just the headline again. Pages that declare nothing and pages that could not be read are counted apart in the run summary, and neither is charged.",
            "default": false
          },
          "deduplicateBy": {
            "title": "Collapse duplicates by",
            "enum": [
              "url",
              "title",
              "none"
            ],
            "type": "string",
            "description": "Wire stories are carried by many outlets at once. \"url\" removes only the identical article arriving twice. \"title\" also collapses syndication, which is often what you want and sometimes throws away distinct regional rewrites. \"none\" keeps everything.",
            "default": "url"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}