{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper with Publisher URLs",
    "description": "Google News search and topic feeds with real publisher URLs (news.google.com links resolved). 85 country/language editions, date filters, day-by-day search past the 100-result limit, duplicate removal. Title, publisher, date, related coverage.",
    "version": "0.1",
    "x-build-id": "gWkzutTbrN7Cgv6xW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zovo-one~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zovo-one-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/zovo-one~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zovo-one-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/zovo-one~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zovo-one-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",
            "maxItems": 100,
            "type": "array",
            "description": "One Google News search per line, up to 100, for example tesla or \"electric cars\" site:reuters.com. Google News operators work: \"exact phrase\", OR, -exclude, site:, intitle:, when:7d. Each query runs once per edition. To try the Actor, leave this and \"Topic feeds\" empty and press Start: it runs the example search \"artificial intelligence\" (25 articles, about $0.05).",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topic feeds",
            "maxItems": 50,
            "type": "array",
            "description": "Up to 50 topic feeds: TOP (top stories), WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SCIENCE, SPORTS, HEALTH, a topic ID (CAAq...) or a news.google.com/topics/... URL. Each topic runs once per edition and holds about 30-100 articles. Subsection URLs (with /sections/ in them) aren't supported and are skipped with a warning.",
            "items": {
              "type": "string"
            }
          },
          "editions": {
            "title": "Editions (country and language)",
            "maxItems": 20,
            "type": "array",
            "description": "Google News editions as COUNTRY:language, up to 20 of the 85 listed. Every query and topic runs in each edition, so 3 queries x 2 editions = 6 feeds (at most 500 per run).",
            "items": {
              "type": "string",
              "enum": [
                "US:en",
                "US:es-419",
                "GB:en",
                "AU:en",
                "CA:en",
                "CA:fr",
                "IN:en",
                "IN:hi",
                "IN:bn",
                "IN:mr",
                "IN:ta",
                "IN:te",
                "IN:ml",
                "IN:gu",
                "IE:en",
                "NZ:en",
                "SG:en",
                "ZA:en",
                "PH:en",
                "PK:en",
                "NG:en",
                "KE:en",
                "GH:en",
                "UG:en",
                "TZ:en",
                "ZW:en",
                "NA:en",
                "BW:en",
                "ET:en",
                "MY:en",
                "MY:ms",
                "ID:id",
                "ID:en",
                "IL:en",
                "IL:he",
                "BD:bn",
                "LB:ar",
                "EG:ar",
                "SA:ar",
                "AE:ar",
                "DE:de",
                "AT:de",
                "CH:de",
                "CH:fr",
                "FR:fr",
                "BE:fr",
                "BE:nl",
                "NL:nl",
                "IT:it",
                "ES:es",
                "PT:pt-150",
                "BR:pt-419",
                "MX:es-419",
                "AR:es-419",
                "CL:es-419",
                "CO:es-419",
                "PE:es-419",
                "VE:es-419",
                "CU:es-419",
                "PL:pl",
                "CZ:cs",
                "SK:sk",
                "HU:hu",
                "RO:ro",
                "BG:bg",
                "GR:el",
                "RS:sr",
                "SI:sl",
                "LV:lv",
                "LT:lt",
                "UA:uk",
                "UA:ru",
                "RU:ru",
                "SE:sv",
                "NO:no",
                "TR:tr",
                "JP:ja",
                "KR:ko",
                "CN:zh-Hans",
                "TW:zh-Hant",
                "HK:zh-Hant",
                "TH:th",
                "VN:vi",
                "SN:fr",
                "MA:fr"
              ],
              "enumTitles": [
                "United States (English) (US:en)",
                "United States (Spanish) (US:es-419)",
                "United Kingdom (GB:en)",
                "Australia (AU:en)",
                "Canada (English) (CA:en)",
                "Canada (French) (CA:fr)",
                "India (English) (IN:en)",
                "India (Hindi) (IN:hi)",
                "India (Bengali) (IN:bn)",
                "India (Marathi) (IN:mr)",
                "India (Tamil) (IN:ta)",
                "India (Telugu) (IN:te)",
                "India (Malayalam) (IN:ml)",
                "India (Gujarati) (IN:gu)",
                "Ireland (IE:en)",
                "New Zealand (NZ:en)",
                "Singapore (SG:en)",
                "South Africa (ZA:en)",
                "Philippines (PH:en)",
                "Pakistan (PK:en)",
                "Nigeria (NG:en)",
                "Kenya (KE:en)",
                "Ghana (GH:en)",
                "Uganda (UG:en)",
                "Tanzania (TZ:en)",
                "Zimbabwe (ZW:en)",
                "Namibia (NA:en)",
                "Botswana (BW:en)",
                "Ethiopia (ET:en)",
                "Malaysia (English) (MY:en)",
                "Malaysia (Malay) (MY:ms)",
                "Indonesia (Indonesian) (ID:id)",
                "Indonesia (English) (ID:en)",
                "Israel (English) (IL:en)",
                "Israel (Hebrew) (IL:he)",
                "Bangladesh (BD:bn)",
                "Lebanon (LB:ar)",
                "Egypt (EG:ar)",
                "Saudi Arabia (SA:ar)",
                "United Arab Emirates (AE:ar)",
                "Germany (DE:de)",
                "Austria (AT:de)",
                "Switzerland (German) (CH:de)",
                "Switzerland (French) (CH:fr)",
                "France (FR:fr)",
                "Belgium (French) (BE:fr)",
                "Belgium (Dutch) (BE:nl)",
                "Netherlands (NL:nl)",
                "Italy (IT:it)",
                "Spain (ES:es)",
                "Portugal (PT:pt-150)",
                "Brazil (BR:pt-419)",
                "Mexico (MX:es-419)",
                "Argentina (AR:es-419)",
                "Chile (CL:es-419)",
                "Colombia (CO:es-419)",
                "Peru (PE:es-419)",
                "Venezuela (VE:es-419)",
                "Cuba (CU:es-419)",
                "Poland (PL:pl)",
                "Czechia (CZ:cs)",
                "Slovakia (SK:sk)",
                "Hungary (HU:hu)",
                "Romania (RO:ro)",
                "Bulgaria (BG:bg)",
                "Greece (GR:el)",
                "Serbia (RS:sr)",
                "Slovenia (SI:sl)",
                "Latvia (LV:lv)",
                "Lithuania (LT:lt)",
                "Ukraine (Ukrainian) (UA:uk)",
                "Ukraine (Russian) (UA:ru)",
                "Russia (RU:ru)",
                "Sweden (SE:sv)",
                "Norway (NO:no)",
                "Turkey (TR:tr)",
                "Japan (JP:ja)",
                "South Korea (KR:ko)",
                "China (CN:zh-Hans)",
                "Taiwan (TW:zh-Hant)",
                "Hong Kong (HK:zh-Hant)",
                "Thailand (TH:th)",
                "Vietnam (VN:vi)",
                "Senegal (SN:fr)",
                "Morocco (MA:fr)"
              ]
            },
            "default": [
              "US:en"
            ]
          },
          "maxArticlesPerQuery": {
            "title": "Max articles per query or topic",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Per query or topic, per edition (1-5,000). Google returns at most 100 articles per request. Above 100, each search query is read one day at a time, newest day first (US Pacific days, the days Google uses), up to 365 days back when no \"From date\" is set. Cost check: 25 articles with publisher URLs = $0.05.",
            "default": 25
          },
          "dateFrom": {
            "title": "From date",
            "pattern": "^(|\\s*\\d{4}-\\d{2}-\\d{2}\\s*|\\s*\\d{1,6}\\s*([Hh][Oo][Uu][Rr]|[Dd][Aa][Yy]|[Ww][Ee][Ee][Kk]|[Mm][Oo][Nn][Tt][Hh]|[Yy][Ee][Aa][Rr])[Ss]?(\\s+[Aa][Gg][Oo])?\\s*)$",
            "type": "string",
            "description": "Only articles published on or after this date. YYYY-MM-DD (start of that day, UTC) or relative: \"24 hours\", \"7 days\", \"2 weeks\", \"3 months\", \"1 year\" (at most 10 years back). Leave empty for any date."
          },
          "dateTo": {
            "title": "To date",
            "pattern": "^(|\\s*\\d{4}-\\d{2}-\\d{2}\\s*|\\s*\\d{1,6}\\s*([Hh][Oo][Uu][Rr]|[Dd][Aa][Yy]|[Ww][Ee][Ee][Kk]|[Mm][Oo][Nn][Tt][Hh]|[Yy][Ee][Aa][Rr])[Ss]?(\\s+[Aa][Gg][Oo])?\\s*)$",
            "type": "string",
            "description": "Only articles published on or before this date. YYYY-MM-DD (end of that day, UTC) or relative, like \"From date\". Leave empty for now."
          },
          "resolveUrls": {
            "title": "Resolve publisher URLs",
            "type": "boolean",
            "description": "Turn news.google.com/rss/articles/... links into the real publisher URL (publisherUrl). Adds about 1-2 requests per article and $0.0005 per article whose URL was found. Off: each article costs $0.0015 and the run is faster.",
            "default": true
          },
          "dedupe": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Skip an article already saved in this run by another query, topic or edition: same Google article ID, same publisher URL, or same title and publisher published less than 12 hours apart. A daily column that reuses its headline is kept once per day. Skipped duplicates aren't charged. Works inside one run only, not across scheduled runs.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel URL resolutions",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many article pages are fetched at the same time to resolve publisher URLs (1-10). Requests are also spaced out; higher values do not bypass that.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. The default is a direct connection. If Google refuses the direct connection on the Apify platform, the run switches once to Apify Proxy (datacenter) by itself, when Apify Proxy is available to the run. Turn on Apify Proxy (datacenter) here if Google blocks the runs. The RESIDENTIAL group is refused while \"Resolve publisher URLs\" is on, because each resolution downloads about 120 KB.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}