{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News Scraper — Headlines, Topics & Full Coverage",
    "description": "Google News scraper and news API in one actor. Search news by query and time range, pull top headlines by country, topic and publisher feeds (CNN, BBC, Tech, Sports), local geo headlines, and full-story coverage with sub-articles and X posts. Pay per result — no subscription.",
    "version": "1.0",
    "x-build-id": "F5jyI7Y8DzvFZEVUl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-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/sian.agency~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-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/sian.agency~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-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",
        "required": [
          "operation"
        ],
        "properties": {
          "operation": {
            "title": "🎯 Operation — what do you want to scrape?",
            "enum": [
              "newsSearch",
              "topHeadlines",
              "topicHeadlines",
              "localHeadlines",
              "fullStoryCoverage",
              "languageList"
            ],
            "type": "string",
            "description": "🎯 **PICK ONE OPERATION PER RUN.** Each run produces one clean dataset matching the chosen mode.\n\n- **🔍 News Search** — search articles by keyword + time range (one row per article)\n- **📰 Top Headlines** — latest top stories for a country\n- **🗂️ Topic / Publisher Headlines** — headlines for a topic (World, Tech, Sports…) **or** a publisher (CNN, BBC, any source)\n- **📍 Local Headlines** — geo-based news for a city or region\n- **🧵 Full-Story Coverage** — every sub-article of one story **plus** posts from X (Twitter) — the column no other scraper returns\n- **🌐 Language List** — valid languages for a country code (helper lookup)\n\n💡 **TIP:** Run Top Headlines or Topic Headlines to discover `storyId` values, then drill into Full-Story Coverage for the complete coverage cloud.",
            "default": "newsSearch"
          },
          "query": {
            "title": "🔍 Search Query (for News Search / Local Headlines)",
            "type": "string",
            "description": "🔍 **Required for `News Search` and `Local Headlines`.**\n\n- **News Search:** any keyword or phrase — `Tesla`, `interest rates`, `\"climate summit\"`. Combine with the time-range filter below.\n- **Local Headlines:** a place name — `New York`, `London`, `Berlin` — to get geo-based news for that location.\n\n⚠️ **Ignored** for all other operations."
          },
          "timePublished": {
            "title": "⏱️ Published Time Range (for News Search)",
            "enum": [
              "anytime",
              "1h",
              "1d",
              "7d",
              "30d",
              "1y"
            ],
            "type": "string",
            "description": "⏱️ **For `News Search` only.** Limit results to articles published within a time window.\n\n- `anytime` (default)\n- `1h` — last hour\n- `1d` — last 24 hours\n- `7d` — last week\n- `30d` — last month\n- `1y` — last year\n\n⚠️ Ignored for all other operations.",
            "default": "anytime"
          },
          "source": {
            "title": "🏷️ Source Domain Filter (for News Search)",
            "type": "string",
            "description": "🏷️ Optional. For `News Search` only — restrict results to a single publisher domain, e.g. `cnn.com`, `bbc.com`, `reuters.com`. Leave blank for all sources.\n\n⚠️ Ignored for all other operations."
          },
          "topic": {
            "title": "🗂️ Topic or Publisher (for Topic / Publisher Headlines)",
            "type": "string",
            "description": "🗂️ **Required for `Topic / Publisher Headlines`.** Either:\n\n- A **topic** keyword: `WORLD`, `NATIONAL`, `BUSINESS`, `TECHNOLOGY`, `ENTERTAINMENT`, `SPORTS`, `SCIENCE`, `HEALTH`\n- A **publisher publication ID** to get a specific outlet's feed (CNN, BBC, etc.). Find it in the `sourcePublicationId` field of any News Search or headline result row.\n\n💡 **TIP:** Run News Search for an outlet, copy the `sourcePublicationId` from a result, and paste it here to pull that publisher's full feed.\n\n⚠️ Ignored for all other operations."
          },
          "story": {
            "title": "🧵 Story ID (for Full-Story Coverage)",
            "type": "string",
            "description": "🧵 **Required for `Full-Story Coverage`.** The Google News story identifier.\n\n💡 **How to get it:** Run `Top Headlines` or `Topic / Publisher Headlines` first — each clustered result row carries a `storyId` field. Copy that value here to pull the entire coverage cloud (top news + all sub-articles + posts from X).\n\n⚠️ Ignored for all other operations."
          },
          "storySort": {
            "title": "↕️ Story Sort Order (for Full-Story Coverage)",
            "enum": [
              "RELEVANCE",
              "DATE"
            ],
            "type": "string",
            "description": "Sort order for the sub-articles in `Full-Story Coverage`.\n\n- `RELEVANCE` (default)\n- `DATE` — newest first\n\nIgnored for all other operations.",
            "default": "RELEVANCE"
          },
          "country": {
            "title": "🌍 Country",
            "type": "string",
            "description": "🌍 Two-letter country code for results locale (e.g. `us`, `gb`, `de`, `fr`, `in`). Applies to News Search, Top Headlines, Topic Headlines, Local Headlines, and Language List. Default `us`.",
            "default": "us"
          },
          "language": {
            "title": "🗣️ Language",
            "type": "string",
            "description": "🗣️ Two-letter language code (e.g. `en`, `es`, `de`, `fr`). Applies to News Search, Top Headlines, Topic Headlines, and Local Headlines. Default `en`.\n\n💡 **TIP:** Run the `Language List` operation with a country code to get the valid languages for that country.",
            "default": "en"
          },
          "limit": {
            "title": "🔢 Max articles to fetch",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "🔢 **Applies to News Search, Top Headlines, Topic Headlines, and Local Headlines.** Maximum number of articles returned in a single run (one upstream call returns up to this many rows).\n\n💡 **TIP:** Start small (10–25) to preview results before scaling up. Headlines feeds can return up to 500.\n\n⚠️ Ignored for Full-Story Coverage and Language List.",
            "default": 25
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}