{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper",
    "description": "Fast Google News scraper. Search by keyword with time-range filter, scrape top stories per country, topic sections, geo headlines, or topic IDs. Extracts title, publisher, date, snippet, image, related coverage. Optional decode of the wrapped Google URL into the real publisher URL.",
    "version": "0.5",
    "x-build-id": "O6lsvEyoKvxhyWFX3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cirkit~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cirkit-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/cirkit~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cirkit-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/cirkit~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cirkit-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",
            "uniqueItems": true,
            "type": "array",
            "description": "Keywords or phrases to search Google News for. Supports Google operators: site:reuters.com, intitle:, OR, -exclude, \"exact phrase\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topic Sections",
            "uniqueItems": true,
            "type": "array",
            "description": "Editorial topic sections by name. Each scrapes the corresponding topic RSS feed.",
            "items": {
              "type": "string",
              "enum": [
                "WORLD",
                "NATION",
                "BUSINESS",
                "TECHNOLOGY",
                "ENTERTAINMENT",
                "SPORTS",
                "SCIENCE",
                "HEALTH"
              ]
            },
            "default": []
          },
          "geos": {
            "title": "Geographic Headlines",
            "uniqueItems": true,
            "type": "array",
            "description": "Free-text city or place names for local headlines (e.g. 'San Francisco', 'New York', 'Tokyo'). Google maps the name to its internal geo topic ID.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "topicIds": {
            "title": "Custom Topic IDs",
            "uniqueItems": true,
            "type": "array",
            "description": "Direct Google News topic IDs (base64 CAAq... strings from news.google.com URLs). Use when you want a specific Google News topic page.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeTopStories": {
            "title": "Include Top Stories",
            "type": "boolean",
            "description": "Also scrape each locale's editorial Top Stories feed.",
            "default": false
          },
          "locales": {
            "title": "Locales",
            "type": "array",
            "description": "Country editions to scrape. Each locale fans out across every query/topic/geo input. Defaults to US English.",
            "default": [
              {
                "hl": "en-US",
                "gl": "US",
                "ceid": "US:en"
              }
            ]
          },
          "timeRange": {
            "title": "Time Range",
            "enum": [
              "any",
              "1h",
              "12h",
              "1d",
              "7d",
              "30d",
              "1y"
            ],
            "type": "string",
            "description": "Restrict search results to a recency window. Only applies to keyword searches. Use 'any' (or leave blank) for no restriction.",
            "default": "any"
          },
          "resolvePublisherUrls": {
            "title": "Resolve Publisher URLs",
            "type": "boolean",
            "description": "When true, the actor decodes each Google News article URL into the publisher's real article URL (e.g. https://www.barrons.com/...). Adds one extra HTTP request per article. Disable for the cheapest, fastest run.",
            "default": false
          },
          "maxResultsPerTarget": {
            "title": "Max Results Per Feed",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Cap on items per single feed (one query in one locale, one topic in one locale, etc.). Google itself returns ~100 per feed; values above 200 are clamped.",
            "default": 100
          },
          "maxResults": {
            "title": "Global Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap across the entire run. Leave 0 or empty for unlimited.",
            "default": 0
          },
          "maxConcurrency": {
            "title": "Feed Fetch Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Number of RSS feeds fetched in parallel. Higher values speed up multi-input runs.",
            "default": 5
          },
          "decodeConcurrency": {
            "title": "URL Decoder Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of publisher-URL decoder calls in parallel. Only relevant when resolvePublisherUrls=true.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify proxy configuration. Defaults to RESIDENTIAL US. Google News RSS has no anti-bot, but residential IPs avoid geo-routing surprises across locales.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}