{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper with Real Article URLs",
    "description": "Scrape Google News articles by keyword, topic or website. Each result has the publisher's real article URL, title, source, publish date and snippet. Pick language, country and date range, and run many searches at once.",
    "version": "1.0",
    "x-build-id": "7tsi3yTjy4qqfv4ya"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/omraydev~google-news-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-omraydev-google-news-search",
        "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/omraydev~google-news-search/runs": {
      "post": {
        "operationId": "runs-sync-omraydev-google-news-search",
        "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/omraydev~google-news-search/run-sync": {
      "post": {
        "operationId": "run-sync-omraydev-google-news-search",
        "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 in Google News, one per line. Google search operators work, for example \"tesla\" intitle:recall, or ai site:reuters.com. If a query has its own when:, after: or before: operator, the date settings below are not added to it.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Google News sections: TOP_STORIES, WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE or HEALTH. You can also paste a news.google.com/topics/... link or its topic ID. Topic feeds hold about 30 to 70 stories.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "sites": {
            "title": "News sites",
            "type": "array",
            "description": "Domains to pull recent articles from, such as reuters.com or bbc.co.uk. Each one runs as a site: search.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "timeRange": {
            "title": "Time range",
            "enum": [
              "any",
              "1h",
              "1d",
              "7d",
              "30d",
              "1y"
            ],
            "type": "string",
            "description": "How far back to look. Ignored when you set a start or end date.",
            "default": "7d"
          },
          "startDate": {
            "title": "Start date",
            "type": "string",
            "description": "Only articles published on or after this day (UTC). Overrides the time range."
          },
          "endDate": {
            "title": "End date",
            "type": "string",
            "description": "Only articles published on or before this day (UTC). Overrides the time range."
          },
          "edition": {
            "title": "Language and country",
            "enum": [
              "US:en",
              "US:es-419",
              "GB:en",
              "CA:en",
              "CA:fr",
              "AU:en",
              "NZ:en",
              "IE:en",
              "IN:en",
              "IN:hi",
              "IN:bn",
              "IN:ta",
              "IN:te",
              "IN:mr",
              "IN:ml",
              "IN:gu",
              "PK:en",
              "BD:bn",
              "SG:en",
              "MY:en",
              "MY:ms",
              "PH:en",
              "ZA:en",
              "NG:en",
              "KE:en",
              "GH:en",
              "IL:en",
              "IL:he",
              "AE:ar",
              "SA:ar",
              "EG:ar",
              "LB:ar",
              "DE:de",
              "AT:de",
              "CH:de",
              "CH:fr",
              "BE:fr",
              "BE:nl",
              "FR:fr",
              "NL:nl",
              "IT:it",
              "ES:es",
              "PT:pt-150",
              "BR:pt-419",
              "MX:es-419",
              "AR:es-419",
              "CO:es-419",
              "CL:es-419",
              "PE:es-419",
              "VE:es-419",
              "SE:sv",
              "NO:no",
              "FI:fi",
              "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",
              "TR:tr",
              "JP:ja",
              "KR:ko",
              "CN:zh-Hans",
              "TW:zh-Hant",
              "HK:zh-Hant",
              "TH:th",
              "VN:vi",
              "ID:id"
            ],
            "type": "string",
            "description": "The Google News edition to search. It sets the hl, gl and ceid parameters together, so the combination is always one Google accepts.",
            "default": "US:en"
          },
          "maxItems": {
            "title": "Max articles per query",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper limit of articles for each query, topic or site. One Google News feed holds about 100 articles, so above 100 the actor splits the date range into smaller windows (see the option below).",
            "default": 100
          },
          "splitDateRange": {
            "title": "Split the date range to get past 100",
            "type": "boolean",
            "description": "When max articles is above 100, or a start or end date is set and the first feed comes back full, search smaller date windows one after another, newest first, until the limit is reached. Needs a time range or a start date. Does not apply to topics.",
            "default": true
          },
          "dedupe": {
            "title": "Remove duplicates across queries",
            "type": "boolean",
            "description": "Skip an article if an earlier query in the same run already returned the same publisher URL.",
            "default": true
          },
          "maxRunSeconds": {
            "title": "Time limit in seconds",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "The run stops collecting after this many seconds and keeps what it has.",
            "default": 300
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}