{
  "openapi": "3.0.1",
  "info": {
    "title": "Google News API & URL Decoder: Real Article URLs",
    "description": "Google News API and URL decoder: search any keyword or topic in any country, or paste news.google.com/rss/articles links or RSS feed URLs, and get the publisher's real article URL as JSON (searches add title, date, snippet). $0.80 per 1,000 decoded links; failures free. Unofficial.",
    "version": "0.1",
    "x-build-id": "fYWPMrEORoEh2exTl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hiver~google-news-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hiver-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/hiver~google-news-scraper/runs": {
      "post": {
        "operationId": "runs-sync-hiver-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/hiver~google-news-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-hiver-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": {
          "articleUrls": {
            "title": "Google News article links or RSS feeds (optional)",
            "type": "array",
            "description": "Paste news.google.com/rss/articles/<id>, /articles/<id>, or /read/<id> links (query strings optional), or /rss/search, /rss/topics, /rss/headlines feed URLs. Feeds expand in feed order; duplicate article IDs collapse. Queries/topics are optional when links are given; combined runs decode links first. No Bing, snippet or publisher-page fetch for these links. Only decoded rows charge decoded-link; errors are free. maxItems caps the whole run.",
            "items": {
              "type": "string"
            }
          },
          "queries": {
            "title": "Search keywords or Google News queries",
            "type": "array",
            "description": "One search per line. Plain keywords (`electric vehicles`) or full Google News queries: `\"exact phrase\"`, `OR`, `AND`, `-exclude`, `intitle:merger`, `site:reuters.com`, `source:\"The Verge\"`. Each search runs separately and every row says which one found it. Optional when articleUrls or topics are supplied.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Google News sections (optional)",
            "type": "array",
            "description": "Headline sections of your country and language edition, read in addition to the searches. Leave empty to use searches only. Optional when articleUrls are supplied.",
            "items": {
              "type": "string",
              "enum": [
                "TOP",
                "WORLD",
                "NATION",
                "BUSINESS",
                "TECHNOLOGY",
                "ENTERTAINMENT",
                "SPORTS",
                "SCIENCE",
                "HEALTH"
              ],
              "enumTitles": [
                "Top stories",
                "World",
                "Nation / Local",
                "Business",
                "Technology",
                "Entertainment",
                "Sports",
                "Science",
                "Health"
              ]
            }
          },
          "country": {
            "title": "Country edition",
            "type": "string",
            "description": "Two-letter country code of the Google News edition, for example US, GB, DE, FR, IN, BR, JP.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Two-letter language code, for example en, de, fr, es, pt, ja. Match it to the country (DE + de, BR + pt).",
            "default": "en"
          },
          "timeWindow": {
            "title": "Time window",
            "enum": [
              "hour",
              "day",
              "week",
              "month",
              "quarter",
              "year"
            ],
            "type": "string",
            "description": "Only articles published inside this window, including `month` (30 days) and `quarter` (90 days).",
            "default": "week"
          },
          "maxItems": {
            "title": "Max articles in total",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard total row limit after deduplication across pasted links, expanded feeds and searches. Links are processed first; errors also occupy a row. Only decoded links and returned search articles are billed.",
            "default": 50
          },
          "maxItemsPerQuery": {
            "title": "Max articles per search",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Limit for each search. One Google News request returns about 100 articles; for larger limits the Actor splits the time window into days and asks again.",
            "default": 25
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "date",
              "relevance"
            ],
            "type": "string",
            "description": "`date` keeps the newest articles when a limit applies. `relevance` keeps Google's own order.",
            "default": "date"
          },
          "resolvePublisherUrl": {
            "title": "Resolve links to the publisher URL",
            "type": "boolean",
            "description": "Google News links are encoded redirects (news.google.com/rss/articles/...). When on, each is resolved to the real article URL. Slower, about 1 second per article. Links that cannot be resolved keep the Google link and `urlResolved: false`. Applies to query/topic results only; pasted links always attempt decoding.",
            "default": true
          },
          "addSnippets": {
            "title": "Add publisher snippets and images",
            "type": "boolean",
            "description": "On by default: fill snippet from the resolved publisher page's description or og:description, and imageUrl from og:image. One direct GET per unique article, three workers, six seconds total for metadata. Refusals/challenges leave both fields null; no retries or redirect following. Bing descriptions are fallback for missing metadata. Disable to skip both Bing and publisher metadata. Pasted articleUrls never fetch publisher pages or Bing, regardless of this setting.",
            "default": true
          },
          "onlyPublishers": {
            "title": "Only these publishers (optional)",
            "type": "array",
            "description": "Keep only articles from these domains, for example `reuters.com`, `bbc.co.uk`. Needs publisher URLs: matched on the publisher site shown by Google News.",
            "items": {
              "type": "string"
            }
          },
          "excludePublishers": {
            "title": "Exclude publishers (optional)",
            "type": "array",
            "description": "Drop articles from these domains, for example `msn.com`, `yahoo.com`.",
            "items": {
              "type": "string"
            }
          },
          "onlyNew": {
            "title": "Only new since last run",
            "type": "boolean",
            "description": "Return only articles that earlier runs with the same Monitor ID did not return. The first run returns everything and becomes the baseline. Schedule the Actor (hourly, daily) and connect a webhook or integration to get alerts.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Name of the saved list of seen articles (letters, numbers, dashes). Use a different ID for every list you monitor.",
            "default": "default"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}