{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper - Real Article Links, Alerts",
    "description": "Google News articles by keyword, topic or top stories, any country and language incl. Arabic. Real publisher URLs, publish time, source, optional page metadata (author, image, description) and a new-articles-only alert mode. Status row per feed; failed links are free.",
    "version": "0.1",
    "x-build-id": "I1RNtNPK1HFyFZrsH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dottti~google-news/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dottti-google-news",
        "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/dottti~google-news/runs": {
      "post": {
        "operationId": "runs-sync-dottti-google-news",
        "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/dottti~google-news/run-sync": {
      "post": {
        "operationId": "run-sync-dottti-google-news",
        "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": "Keywords to search on Google News. Google search operators work: \"exact phrase\", OR, -exclude, site:reuters.com, intitle:word, when:1d, after:2026-10-01, before:2026-10-15. Arabic queries work too, for example أرامكو.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Topic feeds. Use a section name (WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH), a topic id (CAAq...) or a news.google.com/topics/... link.",
            "items": {
              "type": "string"
            }
          },
          "includeTopStories": {
            "title": "Include top stories",
            "type": "boolean",
            "description": "Also read the Top stories feed (the Google News home page) of each edition.",
            "default": false
          },
          "editions": {
            "title": "Countries and languages",
            "type": "array",
            "description": "One Google News edition per entry, written COUNTRY:language. Examples: US:en, GB:en, SA:ar (Saudi Arabia, Arabic), AE:ar, AE:en, EG:ar, IN:en, FR:fr, DE:de. Every query and topic runs in every edition.",
            "default": [
              "US:en"
            ],
            "items": {
              "type": "string"
            }
          },
          "timeWindow": {
            "title": "Time window",
            "enum": [
              "",
              "1h",
              "12h",
              "1d",
              "7d",
              "30d",
              "1y"
            ],
            "type": "string",
            "description": "Only articles published in this window. For searches it is sent to Google as when:; topic and top-story feeds are filtered by publish time. Ignored when a date range is set.",
            "default": ""
          },
          "dateFrom": {
            "title": "From date (optional)",
            "type": "string",
            "description": "YYYY-MM-DD. Sent to Google as after: for searches."
          },
          "dateTo": {
            "title": "To date (optional)",
            "type": "string",
            "description": "YYYY-MM-DD, inclusive. Sent to Google as before: for searches."
          },
          "maxArticlesPerQuery": {
            "title": "Max articles per query",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Per query, topic or top-stories feed, per edition. Google News feeds hold up to 100 articles. For more, split by date range or by site:.",
            "default": 20
          },
          "decodeUrls": {
            "title": "Get the real article URL",
            "type": "boolean",
            "description": "Turns each news.google.com link into the publisher's own URL. Articles whose link Google will not decode are delivered free. Turn off for headlines only; every row is then charged.",
            "default": true
          },
          "includeArticleDetails": {
            "title": "Fetch article page details",
            "type": "boolean",
            "description": "Opens each publisher page to read its description, publish and update time, authors, main image, language, site name, section and keywords. Charged as an extra event, only when the page was read.",
            "default": false
          },
          "includeRelated": {
            "title": "Include related coverage",
            "type": "boolean",
            "description": "Topic and top-story articles often come with a cluster of other outlets covering the same story. Adds them as relatedArticles (headline, outlet, Google News link).",
            "default": true
          },
          "dedupe": {
            "title": "Remove duplicates across queries",
            "type": "boolean",
            "description": "The same article found by two queries or two editions is delivered and charged once.",
            "default": true
          },
          "onlyNew": {
            "title": "Only new articles (alert mode)",
            "type": "boolean",
            "description": "Delivers only articles that earlier runs with the same state name did not deliver. Use it on a schedule. The first run delivers everything it finds.",
            "default": false
          },
          "stateName": {
            "title": "State name",
            "type": "string",
            "description": "Name of the saved list of seen articles. Use a different name for each separate alert.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy (optional)",
            "type": "object",
            "description": "Leave empty: the actor starts without a proxy and moves to Apify datacenter, then residential proxies only if Google blocks it. Set your own proxy to use only that."
          },
          "autoProxyFallback": {
            "title": "Automatic proxy fallback",
            "type": "boolean",
            "description": "Move to Apify proxies when Google blocks requests.",
            "default": true
          },
          "allowResidentialFallback": {
            "title": "Allow residential proxy",
            "type": "boolean",
            "description": "Allow the last step of the fallback to use residential proxies.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel feeds",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "How many feeds and link decodes run at the same time. Keep it low; Google limits fast clients.",
            "default": 2
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}