{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper: Real Article URLs & Full Text",
    "description": "Scrape Google News by keyword, topic or location in any country and language. Real publisher URLs (not Google redirects), time windows, date ranges, dedupe, and optional full article text. Pay only for articles you get.",
    "version": "1.0",
    "x-build-id": "qxbnA1VyghKsbnhG2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/t3data~google-news/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-t3data-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/t3data~google-news/runs": {
      "post": {
        "operationId": "runs-sync-t3data-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/t3data~google-news/run-sync": {
      "post": {
        "operationId": "run-sync-t3data-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, one per line. Google operators work: \"exact phrase\", site:reuters.com, intitle:, OR, -exclude.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Google News topic sections (headlines for the selected country and language).",
            "items": {
              "type": "string",
              "enum": [
                "TOP",
                "WORLD",
                "NATION",
                "BUSINESS",
                "TECHNOLOGY",
                "ENTERTAINMENT",
                "SPORTS",
                "SCIENCE",
                "HEALTH"
              ],
              "enumTitles": [
                "Top stories",
                "World",
                "Nation (the selected country)",
                "Business",
                "Technology",
                "Entertainment",
                "Sports",
                "Science",
                "Health"
              ]
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Local news for a city, region or country, e.g. \"Chicago\", \"Bavaria\", \"Japan\" (Google News geo feeds).",
            "items": {
              "type": "string"
            }
          },
          "feedUrls": {
            "title": "Google News URLs",
            "type": "array",
            "description": "Any news.google.com page or RSS link: a topic, a publication, a story or a saved search. It is converted to its RSS feed.",
            "items": {
              "type": "string"
            }
          },
          "timeWindow": {
            "title": "Time window (search only)",
            "enum": [
              "any",
              "1h",
              "12h",
              "1d",
              "7d",
              "30d",
              "1y"
            ],
            "type": "string",
            "description": "Only articles published in this window. Ignored when a date range is set.",
            "default": "any"
          },
          "dateFrom": {
            "title": "From date (search only)",
            "type": "string",
            "description": "Articles published on or after this date (YYYY-MM-DD)."
          },
          "dateTo": {
            "title": "To date (search only)",
            "type": "string",
            "description": "Articles published before this date (YYYY-MM-DD)."
          },
          "splitByDay": {
            "title": "Split date range by day",
            "type": "boolean",
            "description": "Google returns at most 100 articles per search. With a date range set, this runs one search per day, so you can collect far more articles (up to 100 per day).",
            "default": false
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google News language code (hl), e.g. en-US, en-GB, de, fr, es-419, pt-BR, ja.",
            "default": "en-US"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter country code (gl), e.g. US, GB, DE, IN, BR, JP.",
            "default": "US"
          },
          "maxArticlesPerFeed": {
            "title": "Max articles per query / feed",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Google News returns up to 100 articles per feed.",
            "default": 100
          },
          "maxArticles": {
            "title": "Max articles in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many articles across all feeds. 0 = no limit.",
            "default": 0
          },
          "decodeUrls": {
            "title": "Decode real article URLs",
            "type": "boolean",
            "description": "Turn Google's news.google.com redirect links into the publisher's real article URL. Included in the price.",
            "default": true
          },
          "extractText": {
            "title": "Extract article text",
            "type": "boolean",
            "description": "Also download each article and extract its main text, image, author and description. Best effort: some publishers block bots or use paywalls. Included in the price.",
            "default": false
          },
          "onlyWithText": {
            "title": "Only articles with text",
            "type": "boolean",
            "description": "With text extraction on, skip articles whose publisher blocks it (paywalls, bot walls). Skipped articles are not saved and not charged.",
            "default": false
          },
          "dedupe": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Skip articles already returned by an earlier query or feed in the same run (duplicates are not charged).",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many requests to run at the same time.",
            "default": 40
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy is used by default. If Google blocks an IP, the actor retries on fresh IPs and switches to residential IPs automatically. Proxy cost is included in the price.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}